<译>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()
<译>Selenium Python Bindings 2 - Getting Started的更多相关文章
- <译>Selenium Python Bindings 1 - Installation
Installation Introduction Selenium Python bindings 提供了一个简单的API来使用Selenium WebDriver编写使用功能/验收测试.通过Sel ...
- <译>Selenium Python Bindings 5 - Waits
如今,大多数的Web应用程序使用AJAX技术.当页面加载到浏览器,页面中的元素也许在不同的时间间隔内加载.这使得元素很难定位,如果在DOM中的元素没有呈现,它将抛出ElementNotVisibleE ...
- <译>Selenium Python Bindings 6 - WebDriver API
本章涉及Selenium WebDriver的所有接口. Recommended Import Style 推荐的导入风格如下: from selenium import webdriver 然后,你 ...
- <译>Selenium Python Bindings 4 - Locating Eelements
有各种不同的策略来定位页面中的元素.你可以使用最合适定位方式用于你的用例.Selenium提供了以下方法来定位页面中的元素: find_element_by_id find_element_by_na ...
- <译>Selenium Python Bindings 3 - Navigating
当你想要通过webdriver导航到一个链接,正常的方式点是通过调用get方法: driver.get("http://www.google.com") Interacting w ...
- selenium python bindings 元素定位
1. 辅助 Firepath Firefox是所有做前端的必不可少的浏览器因为firebug的页面元素显示很清晰.用selenium 去定位元素的时候Firefox还有一个非常友好的工具就是firep ...
- [译]Selenium Python文档:目录
作者:Baiju Muthukadan 协议:本文档采用知识共享署名 - 共享4.0国际许可. 原英文网址:http://selenium-python.readthedocs.io/index.ht ...
- [译]Selenium Python文档:一、安装
1.1.简介 Selenium Python为使用Selenium WebDriver来编写功能/验证测试提供了一个简单的API接口.通过Selenium Python API,你可以以一种非常直观的 ...
- [译]Selenium Python文档:二、初步开始
2.1.简单使用 如果已经安装好了Selenium Python,你就可以像下面这样编写Python代码来使用它了: from selenium import webdriver from selen ...
随机推荐
- Spark安装部署
原创文章,转载请注明: 转载自www.cnblogs.com/tovin/p/3820979.html 一.系统环境配置 参照http://www.cnblogs.com/tovin/p/381890 ...
- lintcode 中等题:permutations 全排列
题目 全排列 给定一个数字列表,返回其所有可能的排列. 您在真实的面试中是否遇到过这个题? Yes 样例 给出一个列表[1,2,3],其全排列为: [ [1,2,3], [1,3,2], [2,1,3 ...
- lintcode:Length of Last Word 最后一个单词的长度
题目: 最后一个单词的长度 给定一个字符串, 包含大小写字母.空格' ',请返回其最后一个单词的长度. 如果不存在最后一个单词,请返回 0 . 样例 给定 s = "Hello World& ...
- Linux中断处理体系结构分析
Linux中断处理体系结构分析(一) 异常,就是可以打断CPU正常运行流程的一些事情,比如外部中断.未定义指令.试图修改只读的数据.执行swi指令(Software Interrupt Instruc ...
- swift:类型转换(is用作判断检测、as用作类型向下转换)
类型转换是一种检查类实例的方式,并且哦或者也是让实例作为它的父类或者子类的一种方式. 类型转换在Swift中使用is 和 as操作符实现.这两个操作符提供了一种简单达意的方式去检查值的类型或者转换 ...
- mapgis处理编辑属性结构时 死机问题
上午用的好好的mapgis6.7,下午就出错了,一编辑属性结构就出错,到网上查到了解决方法,和大家共享一下. 转自:http://bbs.3s001.com/forum.php?mod=viewthr ...
- shell编程基础(3)条件判断语句
1,带参数的shellscript #this is program build 5.11 to test shell script ############ cxz ####### 5.11 ### ...
- Tomcat 管理页面
一.配置刚下载的解压版的apache-tomcat,启动后,通过浏览器访问:http://127.0.0.1:8080/(或者http://localhost:8080)然后点击下图的Server s ...
- C++ 打印输出指针
大家想必在很多场景下需要打印输出指针地址.看一下下面的输出: CObject* pObject = new CObject; std::cout << pObject ...
- jquery学习以及下载链接
jquery学习链接 http://www.w3school.com.cn/jquery/jquery_intro.asp jquery 脚本库下载链接 http://jquery.com/downl ...