<译>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.driverdriver.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 ... 
随机推荐
- Oracle 学习笔记(二)
			1.创建用户,一般是具有dba权限的用户才能使用: create user 用户名 identified by 密码; 2.删除用户: drop user 用户名,注意,如果用户拥有对象,则不能直接删 ... 
- hdu1233
			http://acm.hdu.edu.cn/showproblem.php?pid=1233 最小生成树,kruskal算法 #include<stdio.h> #include<m ... 
- C++Builder和VC的比较
			C++Builder和VC的比较 其实很久以前我就想写这篇文章,其原因一方面是因为笔者深深感觉到C++ Builder的确是一个先进与强大的程式开发工具,但更最重要的一点是,我深信C++ Builde ... 
- tomcat作为windows服务启动失败解决方法
			再使用如下方法注册windows服务时,出现问题: set CATALINA_BASE=E:\tomcat\tomcat-web-server set CATALINA_HOME=E:\tomcat\ ... 
- Huge CSV and XML Files in Python, Error: field larger than field limit (131072)
			Huge CSV and XML Files in Python January 22, 2009. Filed under python twitter facebook pinterest lin ... 
- JPA和Hibernate的区别
			JPA Java Persistence API,是Java EE 5的标准ORM接口,也是ejb3规范的一部分. Hibernate,当今很流行的ORM框架,是JPA的一个实现,但是其功能是JPA的 ... 
- Codeforces Round #206 (Div. 1)B(记忆化)
			这题刚开始理解错题意了 以为只能往右和下走 这题挺好的 看题解看了N久啊 二维的DP 第一维表示走到第几步 可以画一个正方形 以左上角斜着划线 第i步走的点只能是第i条线上的点 而dp的第二维 就表示 ... 
- Nlog Layout
			Nlog.config <targets> <target type="Console" name="trace" layout=&q ... 
- 实际举例C#引用类型和值类型的区别<网摘>
			我们都知道,c#的两大数据类型分别为值类型和引用类型.很多人或许闭着眼睛都能说出值类型包括简单类型.结构体类型和枚举类型,引用类型包括自定义类.数组.接口.委托等,但是当被问及到二者之间的联系和区别, ... 
- UVa 10969 (圆与圆之间的覆盖问题) Sweet Dream
			题意: 有n个按先后顺序放置的不同大小不同位置的圆,求所有可见圆弧的长度. 分析: 这道题应该是大白书上例题 LA 2572 (求可见圆盘的数量) Kanazawa 的加强版,整体框架都差不多. 对于 ... 
