selenium python 文档,2. 快速入门 — Selenium-Python中文文档 2 documentation

2.4. 逐步解释测试代码¶

一开始,我们引入了需要的模块, unittest 模块是基于JAVA JUnit的Python内置的模块。

该模块提供了一个框架去组织测试用例。 selenium.webdriver 模块提供了所有WebDriver的实现。

现在支持的WebDriver有:Firefox, Chrome, IE and Remote. Keys 类提供所有的键盘按键操作,比如像这样的:

RETURN, F1, ALT等。

import unittest

from selenium import webdriver

from selenium.webdriver.common.keys import Keys

该测试类继承自 unittest.TestCase.

继承 TestCase 类是告诉 unittest 模块该类是一个测试用例:

class PythonOrgSearch(unittest.TestCase):

setUp 方法是初始化的一部分, 该方法会在该测试类中的每一个测试方法被执行前都执行一遍。

下面创建了一个Firefox WebDriver的一个实例。

def setUp(self):

self.driver = webdriver.Firefox()

这是一个测试用例实际的测试方法. 测试方法始终以 test`开头。

在该方法中的第一行创建了一个在 `setUp 方法中创建的驱动程序对象的本地引用。

def test_search_in_python_org(self):

driver = self.driver

driver.get 方法将会根据方法中给出的URL地址打开该网站。

WebDriver 会等待整个页面加载完成(其实是等待”onload”事件执行完毕)之后把控制权交给测试程序。

如果你的页面使用大量的AJAX技术来加载页面,WebDriver可能不知道什么时候页面已经加载完成:

driver.get("http://www.python.org")

下面一行使用assert断言的方法判断在页面标题中是否包含 “Python”

self.assertIn("Python", driver.title)

WebDriver 提供很多方法去查找页面值的元素,这些方法都以

find_element_by_* 开头。 例如:包含 name 属性的input元素可以使用

find_element_by_name`方法查找到。详细的细节可以参照 :ref:`locating-elements 章节:

elem = driver.find_element_by_name("q")

接下来我们发送keys,这个和使用键盘输入keys类似。

特殊的按键可以通过引入`selenium.webdriver.common.keys`的 Keys 类来输入

elem.send_keys("pycon")

elem.send_keys(Keys.RETURN)

提交页面之后,无论如何你都会得到搜索结果,为了确保某些结果类检索到,可以使用下列断言

After submission of the page, you should get result as per search if

assert "No results found." not in driver.page_source

tearDown 方法会在每一个测试方法执行之后被执行。

该方法可以用来做一些清扫工作,比如关闭浏览器。

当然你也可以调用 quit 方法代替`close`方法,

quit 将关闭整个浏览器,而`close`只会关闭一个标签页,

如果你只打开了一个标签页,大多数浏览器的默认行为是关闭浏览器。

def tearDown(self):

self.driver.close()

下面是入口函数:

if __name__ == "__main__":

unittest.main()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值