selenium太有爱,我已离不开!!!
自动化测试,超有用。
PROXY,PLUGIN,PROFILE,WINDOWS HANDLE个个搞定!!!
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
选择浏览器: driver = webdriver.Firefox()
打开url: driver.get("http://www.baidu.com")
等待: driver.implicitly_wait(30)
driver.set_page_load_timeout(30)
driver.set_script_timeout(30)
关闭浏览器: driver.quit()/driver.close()
前进/后退: driver.forward()/driver.back()
刷新: driver.refresh()
返回当前页面标题:driver.title
返回当前页面url:driver.current_url
返回当前浏览器的所有窗口:driver.window_handles
返回当前浏览器的窗口句柄:driver.current_window_handle
选择窗口: driver.switch_to_window(“window_name”)
对话框操作: driver.switch_to_alert() #选择窗口对象
accept() #点击确认
dismiss() #点击取消
text #获取文本值
send_keys(“key”) #输入值
定位元素(单个):driver.find_element(by=”id”,value=None)
Id定位: driver.find_element_by_id(“id_name”)
Name定位: driver.find_element_by_name(“name”)
Css定位: driver.find_element_by_css_selector(“#foo”)
Xpath定位:driver.find_element_by_xpath(“//select[@id=’nr’]/option[2]”)
Link定位: driver.find_element_by_link_text(u”链接”)
Tag定位: driver.find_element_by_tag_name(“foo”)
截取当前页面: driver.get_screenshot_as_file('/Screenshots/foo.png')
来一段。。。
profileDir = "C:/xxx/AppData/Roaming/Mozilla/Firefox/Profiles/xxx.default"
profile = webdriver.FirefoxProfile(profileDir)
profile.set_preference('network.proxy.type', 1)
profile.set_preference('network.proxy.http', proxy[0])
profile.set_preference('network.proxy.http_port', int(proxy[1]))
profile.set_preference('network.proxy.ssl', proxy[0])
profile.set_preference('network.proxy.ssl_port', int(proxy[1]))
profile.update_preferences()
browser = webdriver.Firefox(profile)
try:
browser.get(url))
#browser.set_page_load_timeout(10)
#browser.set_script_timeout(10)
main_handle = browser.current_window_handle
for i in range(1,x):
link = browser.find_elements_by_tag_name("a")
if link.is_displayed() == False:
continue
url = link.get_attribute("href")
if (url is None) :
continue
link.click()
logging.info( )
all_handles = browser.window_handles
for handle in all_handles:
if handle != main_handle:
browser.switch_to_window(handle)
browser.close()
browser.switch_to_window(main_handle)
else:
browser.back()
browser.quit()
selenium太有爱,我已离不开!!!的更多相关文章
- ASP.NET Aries 2.0 发布(原来的源码SVN已关闭,开源源码已迁移到GitHub)
主要更新: 1:增加子目录部署支持. 2:增加Taurus.MVC支持. 3:优化及Bug修复. 1:增加子目录部署支持: 其实在重写Aries框架的时候,我是去掉了目录部署功能的,主要是为了加快Ar ...
- 由于拷贝的文件太大,不可能一直开着SHELL,所以让SCP后台运行
原文地址: http://blog.itpub.net/90618/viewspace-750822/ 1:开一个终端,scp命令运行后,输入密码让其拷贝 # scp chris@221.179.1. ...
- py+selenium+IE10【IE已停止工作】【已解决】
问题:跑自动化时,到某个用例IE就崩,提示已停止工作. 手工跑的时候,IE挂,提示“Internet Explorer 已经为了帮助保护您的计算机而关闭此网页”. 且每次都在需要调用flash插件 ...
- 用selenium控制已打开的浏览器
在使用selenium进行自动化测试会遇到,手工打开浏览器,做了一部分操作后,并打开相关页面后再执行相关的自动化脚本. 如何使用selenium来接管先前已打开的浏览器呢?醍提出一个Google Ch ...
- Selenium + Nightwatch 自动化测试环境搭建
首先要安装 Java 7 或更高 ,(http://www.oracle.com/technetwork/java/javase/downloads/index.html) 并且 java 命令可正常 ...
- 【转】Selenium WebDriver + Python 环境
转自:http://www.myext.cn/webkf/a_11878.html 1. 下载必要工具及安装包 1.1 [Python开发环境] 下载并安装Python 2.7.x版本 下载地址:ht ...
- 自动更新开奖数据的excel文件,供大家下载
自动更新开奖数据的excel文件,供大家下载 2010-03-14 20:22 228492人阅读打印来源:乐彩网 作者:eren 很多人拥有自制excel电子表格,常要更新最基本的开奖信息.如有多期 ...
- Python全栈开发之 Mysql (一)
一: 1.什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库别说我们在写程序的时候创建的database就是一个数据库 2.什么是 MySQL.Oracle.SQLi ...
- selenium+BeautifulSoup+phantomjs爬取新浪新闻
一 下载phantomjs,把phantomjs.exe的文件路径加到环境变量中,也可以phantomjs.exe拷贝到一个已存在的环境变量路径中,比如我用的anaconda,我把phantomjs. ...
随机推荐
- 在SQL Server中使用命令调用SSIS包
在SQL Server中可以使用dtexec命令运行SSIS包(2005以上版本),当然也可以通过系统过程:xp_cmdshell调用dtexec运行SSIS包. 具体操作步骤如下: 1.首先,当然是 ...
- POJ_3083——贴左右墙DFS,最短路径BFS
Description The cornfield maze is a popular Halloween treat. Visitors are shown the entrance and mus ...
- 大型分布式C++框架《四:netio之buffer管理器 下》
每周一篇又来了.这次主要介绍netio的buffer管理器. 首先buffer管理是每一个网络层不可回避的问题.怎么高效的使用buffer是很关键的问题.这里主要介绍下我们的netio是怎么处理.说实 ...
- hibernate之关系映射上
分别创建user,farm,user_general三张表 create table user( uuid bigint not null auto_increment, name ), age in ...
- CSS初始化-KISSY CSS Reset 1.0
代码 /* KISSY CSS Reset 理念:1. reset 的目的不是清除浏览器的默认样式,这仅是部分工作.清除和重置是紧密不可分的. 2. reset 的目的不是让默认样式在所有浏览器下一致 ...
- Hadoop 开源调度系统zeus(二)
紧跟之前Hadoop 开源调度系统zeus(一) 本节主要介绍一下zeus的架构: 先给一个zeus的架构图 无论Master还是Worker都有一套WEB UI,无论从哪个上面去看,看到的结果都是一 ...
- java 不同意同一账户不同IP 同一时候登录系统解决的方法 兼容IE Firefox
需求就是 不同意同一个账户同一时间登录系统.仅仅要有一个账户在线其它人就是不能用这个账户. 功能非常easy,过程非常纠结 . 这篇文章攻克了兼容IE.Firefox 浏览器下,不同IP 地址 同一用 ...
- hdu5067Harry And Dig Machine(TSP旅行商问题)
题目链接: huangjing 题意:给出一幅图.图中有一些点,然后从第1个点出发,然后途径全部有石头的点.最后回到原点,然后求最小距离.当初作比赛的时候不知道这就是旅行商经典问题.回来学了一下. 思 ...
- jsp DAO设计模式
DAO(Data Access Objects)设计模式是属于J2EE体系架构中的数据层的操作. 一.为什么要用DAO? 比较在JSP页面中使用JDBC来连接数据库,这样导致了JSP页面中包含了大量的 ...
- 1:scrapy框架原理与环境搭设
1:原理图: (*此图来自网络) 2:开发过程: 1)编写items.py,确定要抓取的关键字段名称 2)编写spider,确定发送request的形式以及对于response的处理 3)编写pipe ...