第一个testcase涉及到的知识内容:

"""这里学习内容:
如何唤起浏览器
打开指定网址
刷新页面的方法refresh()
查找指定的元素
模拟键盘输入文本并进行回车操作
"""

1、唤起浏览器:

from selenium import webdriverdriver = webdriver.Chrome()
driver.get_url('https://juejin.cn/')
driver.quit()

根据掘金上的教程,安装了selenium和对应的Chromedriver的版本,直接在pycharm里run,可以唤起浏览器,但是无法将url传到浏览器内进行打开,有一段这个报错

Traceback (most recent call last):
  File "/Users/bytedance/PycharmProjects/pythonProject/venv/test.py", line 4, in <module>
    driver.get_url('https://juejin.cn/')
AttributeError: 'WebDriver' object has no attribute 'get_url'

找到了这个报错的原因,是因为driver.get()而不是driver.get_url()用错了方法导致的。现在可以正常进入掘金首页了。

from selenium import webdriverdriver = webdriver.Chrome()
driver.get('https://juejin.cn/')
# 退出浏览器
driver.quit()

【这里是第1个演示视频】

2、刷新页面方法 refresh()

接着学习刷新页面的方法refresh(),这里需要加time.sleep()——这是用来做等待加载的一种方法,比较笨,但是目前来讲是最好用的一种,主要是有些操作比较快,会继续下一步,如果此时需要点击的按钮或者检查的文字还没有加载出来,直接进行查询、点击的话,会直接中断整个流程,并引入找不到元素的报错提示。

在页面顶部加上import time就可以正常使用time.sleep()这个方法了。

注意:里面的数字是秒级别的,不需要加引号。

接着找到搜索框的元素,并输入想查的信息,回车完成搜索整个步骤静待结果

3、找到搜索框的元素

这里我们要先查看页面的element,找到搜索框的element,找到后先将xpath路径copy下来:

//*[@id="juejin"]/div[1]/div/header/div/nav/ul/li[2]/ul/li[1]/form/input

【这里是第2个演示视频】

此时我们看一下这个元素里都有什么

<input type="search" maxlength="32" placeholder="探索掘金" value="" class="search-input" data-v-df41810e="">

目前这行element里有东西的就是type\maxlength\placeholder\class这几个,按照元素定位的方法选择的话,只有xpath和class_name可以选用。

需要注意的是,前端页面的控件是有可变的不确定性,一般尽量不要使用xpath这种路径进行元素定位,除非走投无路QAQ

先来试试class_name是否能用,好的,实验证明不能用,看看这一串儿的报错。看来只有xpath路径这一种选择了。

【这里是第3个演示视频】

Traceback (most recent call last):
  File "/Users/bytedance/PycharmProjects/pythonProject/venv/test.py", line 16, in <module>
    driver.find_elements_by_class_name("search-input").send_keys("测试自动化")
AttributeError: 'list' object has no attribute 'send_keys'

xpath直接copy下来的路径是比较长的,前面已经copy下来了,这时候我们去页面寻找最短的绝对路径的办法

//input

注意:视频最后的placeholder是用来做精准定位的,不过这里的搜索框是动态加载元素,不适用,直接用input就能定位唯一值就不用写里面的部分了,当然那样写运用到别的地方定位是可以适用的。

4、模拟键盘输入并回车

定位元素后,需要适用模拟键盘的功能,此时需要在订单引入键盘相关的包

from selenium.webdriver.common.keys import Keys

这时候我们就可以对搜索框进入输入并回车的操作了。

# 使用xpath找到一个最短的唯一绝对路径
driver.find_element_by_xpath('//input').send_keys("测试自动化")
driver.find_element_by_xpath('//input').send_keys(Keys.ENTER)
# 退出浏览器
driver.quit()

第一个testcase需要学习的内容就结束了,别忘记了最后需要加上quit()方法关闭浏览器哦~

【这里是第4个演示视频】


本文涉及4个动态视频演示,由于CSDN不是很方便上传,可以移步到同步更新的微信公众号上查阅。

测试内容同步微信公众号更新,可扫描二维码关注不定期的更新推送。

Python+selenium自动化学习笔记(一)相关推荐

  1. Python+Selenium自动化学习笔记一

    1.打开浏览器 # 自动化初体验 打开Chrome浏览器,打开淘宝首页 from selenium import webdriver #安装浏览器驱动url = 'https://www.taobao ...

  2. python接口自动化学习笔记(封装获取测试数据方法)

    本篇文章是接于python接口自动化学习笔记(封装方法用于读取excel) 后的拓展,讲解在封装完成excel的数据读取代码后,如何在data层进行使用 首先,我准备了这样一个excel表格用以存储测 ...

  3. PYTHON SELENIUM的学习笔记

    1 trg = driver.find_element_by_xpath('//*[@id="jb"]/div[2]') 上句中的XPATH语句是从chrome的F12中直接右键目 ...

  4. python+selenium个人学习笔记10-调用JavaScript和截图

    调用JavaScript和截图 一.调用JavaScript 1.调整浏览器滚动条位置 window.scrollTo(0,500); #左边距,上边距 2.用execute_script()执行Ja ...

  5. python测试自动化封装_python接口自动化学习笔记(封装获取测试数据方法)

    本篇文章是接于python接口自动化学习笔记(封装方法用于读取excel) 后的拓展,讲解在封装完成excel的数据读取代码后,如何在data层进行使用 首先,我准备了这样一个excel表格用以存储测 ...

  6. python 网络接口 开发_Python自动化学习笔记(八)——接口开发、发送网络请求、发送邮件、写日志...

    1.接口开发(flask模块) Python自动化学习笔记(七)接口开发部分的内容补充 1.1参数为json格式: flask.request.is_json #判断参数是否是json格式 flask ...

  7. Python自动化学习笔记(八)——接口开发、发送网络请求、发送邮件、写日志...

    1.接口开发(flask模块) Python自动化学习笔记(七)接口开发部分的内容补充 1.1参数为json格式: flask.request.is_json #判断参数是否是json格式 flask ...

  8. chrome 控制台信息获取 python_【python+selenium自动化】设置Chrome启动参数

    起因:直接用selenium的webdriver启动chrome,会弹出"Chrome正在受到自动软件的控制",并且窗口较小,是因为chrome没有加载任何配置 解决:点进sele ...

  9. 无敌python爬虫教程学习笔记(一)

    python爬虫系列文章目录 无敌python爬虫教程学习笔记(一) 无敌python爬虫教程学习笔记(二) 无敌python爬虫教程学习笔记(三) 无敌python爬虫教程学习笔记(四) 本文目录 ...

最新文章

  1. HDU 2612 Find a way(BFS)
  2. 课时 16 深入理解 etcd:基于原理解析(曾凡松)
  3. 拒绝“肌肉记忆”,卡萨帝迈进场景品牌新赛道
  4. Qt创建Android服务
  5. 怎么判断间隙过渡过盈配合_间隙配合过盈配合过渡配合之间的区别
  6. .NET Core 单元测试
  7. You-Get—— 基于 Python3 的媒体下载工具
  8. 最适合编程训练的三大OJ(从易到难)
  9. 制作u盘版的kail linux 系统,即插即用,用于破解邻居妹子家的wifi
  10. 命令_查看占用端口 netstat -ano|findstr 8080
  11. 线程同步与线程同步的必要性
  12. GlusterFS扩展操作及性能测试工具
  13. 深入浅出 proxy 系列之一:Proxy 是什么
  14. firefox+android+平板,Mozilla展示Android平板火狐浏览器设计细节
  15. 不知不觉openGL已经到4.5了
  16. linux里hba状态_Linux更换HBA卡后重新扫盘指令
  17. 【C语言—零基础第九课】函数中的爱恨情仇
  18. Android蓝牙问题
  19. 上海公司跨区迁移导致的税务和工商异常问题处理
  20. 白银时代房地产如何赚钱?——旅游地产怎样玩?

热门文章

  1. linux系统制作系统盘,制作Linux启动盘的四种方法
  2. FATFS系列之历史篇
  3. SPI接口的FPGA实现(一)——SPI接口的相关基础知识
  4. 什么是CIF视频格式
  5. jfinal整合妹子UI初步完成
  6. 树莓派Pi Pico套件 MicroPython编程
  7. 杭州东识RFID被装管理系统之盘库
  8. 从零开始搭建轻量级个人XSS平台(BlueLotus_XSSReceiver-master蓝莲花)
  9. FPGA时序约束与分析 (2)--- primary clock主时钟约束
  10. 四元数转yaw、pitch、roll