python+selenium(一)

本文使用的是Windows 7,python3.7, Firefox。
翻译自:https://selenium-python.readthedocs.io/getting-started.html
不全是翻译, 其中有些部分是按照自己的理解写的,有不对的地方,希望大家可以留言。讨论和分享 ,学习才更有趣。
一.安装selenium:

  1. Python 3.6的标准库中提供了pip,所以可以使用pip安装selenium。

  2. 使用命令安装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/

设置驱动:

  1. 新建一个目录存放驱动,如:D:\driver, 把驱动放在该目录下。
  2. 环境变量设置: 把 ;D\driver添加到path中。(计算机→右键→属性→高级系统设置→环境变量)
  3. 验证驱动是否安装成功:
    在python编辑器,如pycharm中输入以下代码在python编辑器,如pycharm中输入以下代码:
    from selenium import webdriver
    driver = webdriver.Firefox()
    driver = webdriver.Ie()

三.举个例子:
python+selenium(一)

举例解释:

  1. from selenium import webdriver 导入驱动模块。
  2. from selenium.webdriver.common.keys import Keys 导入键盘操作模块。
  3. driver = webdriver.Firefox() 接下来,选择你要使用的浏览器
  4. driver.get 导航到你给出的地址
  5. search_field = driver.find_element_by_id(“kw”) 定位到百度搜索框
  6. search_field.clear() 清除搜索框内容
  7. search_field.send_keys(“Selenium WebDriver”) 在搜索框输入搜索内容
  8. search_field.submit() 提交搜索内容
  9. driver.close() 关闭浏览器

四. 用selenium写一个测试用例:
这里使用unittest作为测试框架,对python.org搜索功能的测试:
python+selenium(一)

  1. 首先,导入所需的所有基本模块。 unittest模块是Python内置的,不需要安装,直接导入。这个模块提供了组织测试用例的框架。

python+selenium(一)

  1. 然后定义一个测试类,方法继承自unittest.TestCase:
    python+selenium(一)

  2. setUp是初始化函数,这个方法在执行用例前被调用。浏览器的调用放到这个初始化部分。
    python+selenium(一)

  3. 接下来是测试用例方法,它应该从字符测试(characters test)开始。在该方法中,第一行创建了一个局部引用,它调用了setUp方法中的驱动对象。

python+selenium(一)

  1. driver.get 方法将导航到给出的URL。
    python+selenium(一)

  2. 下一行是一个断言,确认“Python”一词在导航到的地址标题中。
    python+selenium(一)

  3. WebDriver 提供了多种方法通过find_element_by_*方法来定位元素。
    python+selenium(一)

  4. 接下来,对定位到的元素发送指令,这类似于使用键盘按下按键。可以使用selenium.webdriver.common.keys 导入的keys类发送特殊按键
    python+selenium(一)

  5. 页面提交后,我们会得到结果。为了确认我们得到的结果,需要添加一个断言:
    python+selenium(一)

  6. tearDown 函数在每次测试执行后调用,它用来清除信息,在本例中,它用来关闭浏览器。
    python+selenium(一)

  7. 最后一行用来运行测试套件:
    python+selenium(一)

…接python+selenium(二)