<译>Selenium Python Bindings 2 - Getting Started
- Simple Usage
如果你已经安装了Selenium Python,你可以通过Python这样使用:#coding=gbk ''' Created on 2014年5月6日 @author: user ''' from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Firefox() driver.get("http://www.python.org") assert "Python" in driver.title elem = driver.find_element_by_name("q") elem.send_keys("selenium") elem.send_keys(Keys.RETURN) driver.close()
(如果设置了Python的环境变量,保存后可以直接双击运行)
- Walk through of the example(剖析上例)
Selenium WebDriver模块提供了所有的webdriver实现。目前webdriver支持:火狐,Chrome,IE和远程。键值类提供键值:RETURN,F1,ALT等。from selenium import webdriver from selenium.webdriver.common.keys import Keys
然后,火狐中的WebDriver实例被创建:
driver = webdriver.Firefox()
driver.get方法将导航到给定的URL页面。WebDriver将等到页面完全加载在返回控制权到你的测试脚本之前。值得一提的是,如果页面大量的采用AJAX,那么WebDriver也许不知道什么时候完全加载。
driver.get("http://www.python.org")
下一行代码断言确认页面title是否含有“Python”这个单词内容:
assert "Python" in driver.title
WebDriver提供了很多通过find_element_by_*来寻找元素的方法,例如,输入文本元素可以放置使用find_element_by_name方法,它的name属性。
elem = driver.find_element_by_name("q")
接下来,我们模拟按键输入按键值,这类似于使用键盘输入键。特殊键可以使用按键类从selenium.webdriver.common.keys导入。
elem.send_keys("selenium") elem.send_keys(Keys.RETURN)
最后浏览器将被关闭:
driver.close()
- Using Selenium to write tests
Selenium 主要用于编写测试用例。Selenium包本身不提供测试工具/框架。您可以使用Python的unittest模块编写测试用例。其他选项作为一种工具/框架有py.test和nose。
在本章中,我们使用单元测试作为选择的框架。这里改变的用例,它使用unittest模块。这里是对python.org搜索功能的一个用例:
#coding=gbk ''' Created on 2014年5月6日 @author: user ''' import unittest from selenium import webdriver from selenium.webdriver.common.keys import Keys class PythonOrgSearch(unittest.TestCase): def setUp(self): self.driver = webdriver.Firefox() def test_search_in_python_org(self): driver = self.driver driver.get("http://www.python.org") self.assertIn("Python", driver.title) elem = driver.find_element_by_name("q") elem.send_keys("selenium") elem.send_keys(Keys.RETURN) def tearDown(self): self.driver.close() if __name__ == "__main__": unittest.main()
(如果是使用pydev来开发,那么要设置PyDev的code analysis 的undefined为 warning)
运行结果如下:
Finding files... done. Importing test modules ... done. ---------------------------------------------------------------------- Ran 1 test in 31.453s OK
- Walk through of the example
最初,所需要的基本模块需要被导入。 unittest模块是内置在Python中基于Java的JUnit的。该模块提供了用于组织测试用例的框架。该selenium.webdriver模块提供了所有的webdriver实现。目前支持的实现的webdriver:火狐,Chrome,IE和远程。import unittest from selenium import webdriver from selenium.webdriver.common.keys import Keys
这个测试用例类是从unittest.TestCase的继承。从TestCase类继承的方式是告诉unittest模块:这是一个测试案例:
class PythonOrgSearch(unittest.TestCase):
setUp是初始化的一部分,这个方法将在写测试用例之前调用每一个测试方法。下面是创建一个火狐浏览器WebDriver的用例:
def setUp(self): self.driver = webdriver.Firefox()
这是测试用例的方法。这种方法中的第一行创建一个本地参考setUp方法创建的驱动程序对象。
def test_search_in_python_org(self): driver = self.driver
driver.get方法将导航到给定的URL页面。WebDriver将等到页面完全加载在返回控制权到你的测试脚本之前。值得一提的是,如果页面大量的采用AJAX,那么WebDriver也许不知道什么时候完全加载。
driver.get("http://www.python.org")
下一行代码断言确认页面title是否含有“Python”这个单词内容:
self.assertIn("Python", driver.title)
WebDriver提供了很多通过find_element_by_*来寻找元素的方法,例如,输入文本元素可以放置使用find_element_by_name方法,它的name属性。
elem = driver.find_element_by_name("q")
接下来,我们模拟按键输入按键值,这类似于使用键盘输入键。特殊键可以使用按键类从selenium.webdriver.common.keys导入。
elem.send_keys("selenium") elem.send_keys(Keys.RETURN)
提交页面后,你应该得到的结果按搜索,如果有的话。
tearDown方法将每个测试方法之后被调用。这步完成所有的清理行动。在目前的方法中,在浏览器窗口是关闭的。默认情况下,大多数浏览器将完全退出。
def tearDown(self): self.driver.close()
最后是模板代码内容:
if __name__ == "__main__": unittest.main()
最新文章
- Atitit 延迟绑定架构法attilax总结
- Java_DOM创建XML
- 接口分离原则(Interface Segregation Principle)
- POS管理系统之新增设备入库
- sqlzoo.net刷题5
- iOS开发之格式化日期时间(转)
- 动画--过渡属性 transition-property
- dedecms5.7 联动类型无法显示
- 【MINA】序列化和反序列化我们要考虑的问题
- 黑马程序员--&#160;C语言执行过程及注意点
- JS年月日三级联动下拉框日期选择代码
- [Usaco2008 Feb]Eating Together麻烦的聚餐[最长不下降子序列]
- ASP.NET里面,如果设置了form的 onsubmit=";return false;";之后,就不能提交按钮了?
- 【Python】 SSH连接的paramiko
- camelcase-hankerrank
- HAOI(多省联考)2019退役记
- SDL源码阅读笔记(2) video dirver的初始化及选择
- udp之关于linux udp收发包缓冲区大小
- Linux中THIS_MODULE宏定义详解
- jquery接触初级-----ajax 之:jquery_ajax 方法