详细网址:https://blog.csdn.net/langyichen/article/details/100929250
安装网址:https://selenium-python-zh.readthedocs.io/en/latest/installation.html
selenium 是一个 web 的自动化测试工具,不少学习功能自动化的同学开始首选 selenium ,因为它相比 QTP 有诸多有点:
- 免费,也不用再为破解 QTP 而大伤脑筋
- 小巧,对于不同的语言它只是一个包而已,而 QTP 需要下载安装1个多 G 的程序。
- 这也是最重要的一点,不管你以前更熟悉 C、 java、ruby、python、或都是 C# ,你都可以通过 selenium 完成自动化测试,而 QTP 只支持 VBS
- 支持多平台:windows、linux、MAC ,支持多浏览器:ie、ff、safari、opera、chrome
- 支持分布式测试用例的执行,可以把测试用例分布到不同的测试机器的执行,相当于分发机的功能。
官方文档:
- https://selenium-python.readthedocs.io/index.html
- https://seleniumhq.github.io/selenium/docs/api/py/api.html
1.2 selenium+Python环境配置
前提条件:已安装好Python开发环境(推荐安装Python3.5及以上版本)
安装步骤:
-
安装selenium
Win:pip install selenium
Mac:pip3 install selenium
-
安装webdriver
各大浏览器webdriver地址可参见:https://docs.seleniumhq.org/download/
Firefox:https://github.com/mozilla/geckodriver/releases/
Chrome:https://sites.google.com/a/chromium.org/chromedriver/ 或者
http://chromedriver.storage.googleapis.com/index.html
IE:http://selenium-release.storage.googleapis.com/index.html
注:webdriver需要和对应的浏览器版本以及selenium版本对应
Webdriver版本 | 支持的Chrome版本 |
---|---|
v2.41 | v67-69 |
v2.40 | v66-68 |
v2.39 | v66-68 |
v2.38 | v65-67 |
v2.37 | v64-66 |
v2.36 | v63-65 |
v2.35 | v62-64 |
v2.34 | v61-63 |
v2.33 | v60-62 |
- webdriver安装路径
Win:复制webdriver到Python安装目录下
Mac:复制webdriver到/usr/local/bin目录下
常用命令
find_element_by_id() 根据id查找元素
find_element_by_name 通过元素的名称定位元素
find_element_by_xpath xpath 定取节点查找元素
find_element_by_link_text 网页通过link text 方式定位,专门用来定位文本链接
find_element_by_partial_link_text 是对link定位的一种补充,当链接上的文本内容比较长的时候,可以取文本的一部分进行定位,当然这部分可以唯一地标识这个链接
※注:以上的方式稍有局限,且经常页面没有id,name这些属性值,class name重复性较高,link定位有针对性,所以Xpath与Css定位更灵活些。用 find_element_by_link_text 方式定位,标签必须是<a></a>的元素,才能成功。
find_element_by_tag_name 页面html文档下的各种标签tag往往用来定义一类功能,所以通过tag识别某个元素的概率很低。任意打开一个页面,都会发现大量的<div>、<input>、<a>等tag,所以tag name定位很少用
find_element_by_class_name 根据class定位
find_element_by_css_selector 薄弱,用的很少,但很强大,比xpath简洁灵活):使用选择器来为页面元素绑定属性,可以灵活地选择控件的任意属性
webdriver.ActionChains(wb).move_to_element(变量名).perform() 鼠标从当前位置移动到某个坐标
方法详情地址:https://www.cnblogs.com/minieye/p/5803640.html
SELENIUM之ACTIONCHAINS模拟用户行为:https://www.cnblogs.com/zr603578280/p/9939791.html
Selenium api :https://www.jianshu.com/p/8d8878f9bda5
selenium常用api大全 https://www.cnblogs.com/SakuraYuanYuan/p/11065938.html
.get(url) 加载指定网址
.click() 点击
.send_keys()填写东西
.clear() 清空
.size 获得控件的尺寸
.text 获得所显示的内容
.maximize_window() 窗口最大化
.set_window_size(480, 800) 设置窗口大小
WebDriverWait(driver, 15) 调节最大等待时间