python+selenium(一)
本文使用的是Windows 7,python3.7, Firefox。
翻译自:https://selenium-python.readthedocs.io/getting-started.html
不全是翻译, 其中有些部分是按照自己的理解写的,有不对的地方,希望大家可以留言。讨论和分享 ,学习才更有趣。
一.安装selenium:
-
Python 3.6的标准库中提供了pip,所以可以使用pip安装selenium。
-
使用命令安装selenium: pip install selenium
二.下载浏览器驱动
IE浏览器驱动:http://selenium-release.storage.googleapis.com/index.html
Firefox浏览器驱动:https://github.com/mozilla/geckodriver/releases
Chrome: https://sites.google.com/a/chromium.org/chromedriver/downloads
Edge: https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
Firefox: https://github.com/mozilla/geckodriver/releases
Safari: https://webkit.org/blog/6900/webdriver-support-in-safari-10/
设置驱动:
- 新建一个目录存放驱动,如:D:\driver, 把驱动放在该目录下。
- 环境变量设置: 把 ;D\driver添加到path中。(计算机→右键→属性→高级系统设置→环境变量)
- 验证驱动是否安装成功:
在python编辑器,如pycharm中输入以下代码在python编辑器,如pycharm中输入以下代码:
from selenium import webdriver
driver = webdriver.Firefox()
driver = webdriver.Ie()
三.举个例子:
举例解释:
- from selenium import webdriver 导入驱动模块。
- from selenium.webdriver.common.keys import Keys 导入键盘操作模块。
- driver = webdriver.Firefox() 接下来,选择你要使用的浏览器
- driver.get 导航到你给出的地址
- search_field = driver.find_element_by_id(“kw”) 定位到百度搜索框
- search_field.clear() 清除搜索框内容
- search_field.send_keys(“Selenium WebDriver”) 在搜索框输入搜索内容
- search_field.submit() 提交搜索内容
- driver.close() 关闭浏览器
四. 用selenium写一个测试用例:
这里使用unittest作为测试框架,对python.org搜索功能的测试:
- 首先,导入所需的所有基本模块。 unittest模块是Python内置的,不需要安装,直接导入。这个模块提供了组织测试用例的框架。
-
然后定义一个测试类,方法继承自unittest.TestCase:
-
setUp是初始化函数,这个方法在执行用例前被调用。浏览器的调用放到这个初始化部分。
-
接下来是测试用例方法,它应该从字符测试(characters test)开始。在该方法中,第一行创建了一个局部引用,它调用了setUp方法中的驱动对象。
-
driver.get 方法将导航到给出的URL。
-
下一行是一个断言,确认“Python”一词在导航到的地址标题中。
-
WebDriver 提供了多种方法通过find_element_by_*方法来定位元素。
-
接下来,对定位到的元素发送指令,这类似于使用键盘按下按键。可以使用selenium.webdriver.common.keys 导入的keys类发送特殊按键
-
页面提交后,我们会得到结果。为了确认我们得到的结果,需要添加一个断言:
-
tearDown 函数在每次测试执行后调用,它用来清除信息,在本例中,它用来关闭浏览器。
-
最后一行用来运行测试套件:
…接python+selenium(二)