python + selenium
来源:互联网 发布:淘宝交电费显示缴费中 编辑:程序博客网 时间:2024/05/18 20:08
selenium是一个模拟浏览器的类库,经常用来做自动化测试
python 可以直接使用安装目录下的Scripts\pip工具安装
以windows7 python3.4为例
运行cmd,
cd C:\Python34\Scriptspip install selenium
一键安装完成,python脚本使用import selenium即可开始使用
下面是官网的一个例子:
from selenium import webdriverfrom selenium.webdriver.common.keys import Keysdriver = webdriver.Firefox()driver.get("http://www.python.org")assert "Python" in driver.titleelem = driver.find_element_by_name("q")elem.send_keys("pycon")elem.send_keys(Keys.RETURN)assert "No results found." not in driver.page_sourcedriver.close()
模拟了用Firefox浏览器(本地电脑必须安装相关浏览器)
打开 www.python.org,然后输入框输入 pycon搜索的 流程
根据官方文档,目前支持的模拟浏览器有Firefox, Chrome, Ie and Remote.
selenium用webdriver模拟浏览器,get方法打开网页
接下来是获取页面元素
elem = driver.find_element_by_name("q")
selenium提供了以下元素获取方式:
(注:这些方式均只能获取匹配的第一个元素)
- find_element_by_id ,find_element_by_name,class_name,tag_name
这些很简单,不多做解释,分别按元素的,id,name,class,tag属性来定位元素
- find_element_by_xpath
文档说明是 定位XML节点,HTML可以看做XML的实现,你可以使用这个函数将节点绝对定位(但是不建议),也可以关联到一个有id和name属性的节点,这个定位器也可以用id,name之外的属性来定位
来看官网的例子:
我们可以这样定位form:<html> <body> <form id="loginForm"> <input name="username" type="text" /> <input name="password" type="password" /> <input name="continue" type="submit" value="Login" /> <input name="continue" type="button" value="Clear" /> </form></body><html>
1.绝对定位,HTML只要有轻微的改变就会失效login_form = driver.find_element_by_xpath("/html/body/form[1]")login_form = driver.find_element_by_xpath("//form[1]")login_form = driver.find_element_by_xpath("//form[@id='loginForm']")
2.找到HTML里的第一个form
3.找到id=loginForm的form
我们可以这样定位 username输入框:
1.第一个form元素的input子元素,子元素有name=username的属性username = driver.find_element_by_xpath("//form[input/@name='username']")username = driver.find_element_by_xpath("//form[@id='loginForm']/input[1]")username = driver.find_element_by_xpath("//input[@name='username']")
2. id=loginForm的form元素的第一个input子元素
3.第一个name=username的input元素
.....
- find_element_by_link_text 和 find_element_by_partial_link_text
继续官网的例子
<html> <body> <p>Are you sure you want to do this?</p> <a href="continue.html">Continue</a> <a href="cancel.html">Cancel</a></body><html>
我们这样获取 Continue超链接(注意:匹配的是a标签之间的文本内容)
continue_link = driver.find_element_by_link_text('Continue')continue_link = driver.find_element_by_partial_link_text('Conti')
find_element_by_css_selector
这个方式如果了解JQuery和CSS的人应该不陌生,使用CSS选择器,这个应该是最强大的功能了,详细可以查阅
CSS选择器如果想获取多个元素,讲上面的选取方法(除去id唯一的方法),element单词后面加s即为多选的选择器,返回一个python list
- find_elements_by_name
- find_elements_by_xpath
- find_elements_by_link_text
- find_elements_by_partial_link_text
- find_elements_by_tag_name
- find_elements_by_class_name
- find_elements_by_css_selector
send_keys是模拟键盘的输入,特殊字符例如Enter,ALT,F1需要引入下面的模块,然后用相应的代码表示
selenium.webdriver.common.keys
官网地址:selenium-python.readthedocs.org
翻译地址:https://github.com/StephinChou/seleniumDocument
0 0
- Selenium python
- python selenium
- python+selenium
- python + selenium
- Python Selenium
- python selenium
- Python selenium
- python+selenium
- selenium-python
- Python selenium
- Python+selenium
- Python+selenium
- python+selenium
- Python selenium
- python selenium
- Python+selenium
- python中使用selenium
- Python + Selenium环境搭建
- Tomcat7配jdk1.6的代码优化问题
- AndroidSutdio与Git@osc
- swift附属脚本
- php5-memcached比php5-memcache速度略快一点
- RegExp对象(javascript)
- python + selenium
- android tcp 长连接
- 程序员10大境界【走在路上,潜心修行】
- 69道Spring面试题和答案
- 条款弹框提示实现
- 2015年技术回顾
- Centos6.6系统的安装
- 常用Message Queue对比
- secureCRT配色