[译]Selenium Python文档:八、附录:FAQ常见问题
另外一个FAQ:https://github.com/SeleniumHQ/selenium/wiki/Frequently-Asked-Questions
8.1.怎样使用ChromeDriver
从chromedriver 下载页下载版(译者注:需翻墙)。解压压缩包:
unzip chromedriver_linux32_x.x.x.x.zip
你应该看到一个chromedriver可执行文件。接着你就可以像下面这样创建一个WebDriver实例:
driver = webdriver.Chrome(executable_path="/path/to/chromedriver")
示例的其他部分参考其他文档中的介绍。
8.2.Selenium2支持XPATH2.0吗?
参考:http://seleniumhq.org/docs/03_webdriver.html#how-xpath-works-in-webdriver
Selenium使用的XPath取决于浏览器本身的XPath引擎。也就是说你使用的浏览器支持什么版本的XPath,Selenium就支持什么版本的XPath。如果使用不自带XPath引擎的浏览器(比如,IE5,7,8),Selenium将只支持XPath1.0。
8.3.怎样滚动到页面底部?
参考:http://blog.varunin.com/2011/08/scrolling-on-pages-using-selenium.html
你可以在加载页面的时候使用execute_script方法执行javascript代码。所以,你可以调用Javascript API滚动到页面的底部或其他任意位置。
下面是滚动到页面底部的示例:
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
DOM中的window对象有一个scroll方法,用来滚动到窗口的任意位置。scrollHeight是所有元素的一个通用属性。document.body.scrollHeight标识页面整个body的高度。
8.4.怎样使用地址的火狐配置文件自动保存文件?
参考-1:http://stackoverflow.com/questions/1176348/access-to-file-download-dialog-in-firefox
参考-2:http://blog.codecentric.de/en/2010/07/file-downloads-with-selenium-mission-impossible/
首先先识别你要保存的文件的文件类型。
要识别你要自动下载的文件的content-type,可以使用curl+grep命令:
curl -I URL | grep "Content-Type"
另外一种办法是使用requests模块来找到content-type,简单示例如下:
import requests
content_type = requests.head('http://www.python.org').headers['content-type']
print(content_type)
识别出content-type之后,你就可以使用它来设置火狐配置文件的配置:
browser.helperApps.neverAsk.saveToDisk
下面是一个小示例:
import os
from selenium import webdriver
fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList",2)
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.download.dir", os.getcwd())
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream")
browser = webdriver.Firefox(firefox_profile=fp)
browser.get("http://pypi.python.org/pypi/selenium")
browser.find_element_by_partial_link_text("selenium-2").click()
在上面的示例中,content-type被设置为 application/octet-stream。
browser.download.dir选项用来指定你想要将下载的文件保存的目录。
8.5.怎样通过file input上传文件?
选取<input type="file">元素,调用send_keys方法,给其传递一个文件路径(绝对路径和相对路径均可)。但是请注意Windows系统和Unix系统路径名称的差异。
8.6.怎样在火狐的Firefox?
首先下载FireBug XPI文件,接着你就可以调用add_extension方法来使用他了。
from selenium import webdriver
fp = webdriver.FirefoxProfile()
fp.add_extension(extension='firebug-1.8.4.xpi')
fp.set_preference("extensions.firebug.currentVersion", "1.8.4") #避免启动界面
browser = webdriver.Firefox(firefox_profile=fp)
8.7.怎样对当前窗口截图?
使用web'driver提供的save_screenshot方法:
rom selenium import webdriver
driver = webdriver.Firefox()
driver.get('http://www.python.org/')
driver.save_screenshot('screenshot.png')
driver.quit()
												
											[译]Selenium Python文档:八、附录:FAQ常见问题的更多相关文章
- [译]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文档:四、元素定位
		
要定位一个页面中的元素有多中策略和方法.你可以根据实际情况选择其中最为合适的.Selenium为定位页面元素提供了下面的这些方法: find_element_by_id(使用id) find_elem ...
 - [译]Selenium Python文档:七、WebDriver API接口
		
由于API文档格式不太适合cnblog博客,暂且翻译一部分,且暂未校对 注意:这不是官方文档,官方 API文档在这里. 本章包含Selenium WebDriver的所有接口 推荐import风格 本 ...
 - [译]Selenium Python文档:二、初步开始
		
2.1.简单使用 如果已经安装好了Selenium Python,你就可以像下面这样编写Python代码来使用它了: from selenium import webdriver from selen ...
 - [译]Selenium Python文档:五、Waits等待
		
大多数现代web应用都使用了AJAX技术.当浏览器加载一个页面的时候,该页面内的元素可能在不用的时间间隔内进行加载.这使得元素定位变得比较困难:如果一个元素还没有出现在DOM中,定位函数将会抛出一个E ...
 - [译]Selenium Python文档:六、页面对象
		
本章是介绍页面对象设计模式的教程.一个页面对象代表了web应用用户接口的一片区域,你的测试代码将与之交互的. 使用页面对象模式的好处: 可以创建在多个测试样例中都可使用的可重用代码 减少重复性代码 如 ...
 - [译]Selenium Python文档:三、导航控制
		
你使用WebDriver要做的第一件事就是访问一个链接.一般通过调用get方法来实现: driver.get("http://www.baidu.com") 在将控制权返给你的脚本 ...
 - 基于 Python 官方 GitHub 构建 Python 文档
		
最近在学 Python,所以总是在看 Python 的官方文档, https://docs.python.org/2/ 因为祖传基因的影响,我总是喜欢把这些文档保存到本地,不过 Python 的文档实 ...
 
随机推荐
- [JS][jQuery]清空元素html("")、innerHTML="" 与 empty()的区别 、remove()区别
			
清空元素html("").innerHTML="" 与 empty()的区别 一.清空元素的区别 1.错误做法一: $(" ...
 - Java之英格玛简单实现以及加密验证码的应用
			
最近看了一部电影<模仿游戏>,<模仿游戏>中艾伦·图灵破译英格玛让我对英格玛产生了好奇,于是就开始翻阅资料对其进行研究,但是毕竟智慧有限,所以我这里用Java实现一个简单的英格 ...
 - 循环语句——do…while语句
			
一.do while语句结构 do { 执行语句 } while (条件表达式); 条件表达式必须是trur或false 二.do while语句特点 不论条件是否满足,都先执行一次执行语句 三.示例 ...
 - css3 3d 与案例分析
			
作者:魔洁 聊到3d那我们就先聊聊空间维度,首先一维,比如一条线就是一个一维空间,连点成线在这个空间里这些点只能前进后退,二维空间就是一个平面,这时点不仅可以前进后退还可以左右移动,3维空间也可以说是 ...
 - 不要在Android的Application对象中缓存数据!
			
前言 在你的App中的很多地方都需要使用到数据信息,它可能是一个session token,一次费时计算的结果等等,通常为了避免Activity之间传递数据的开销,会将这些数据通过持久化来存储. ...
 - AJSX 传输数组
			
如果要利用ajax传输数组,或者传输多个(不知道有多少个)class的某一属性的值,例如: 要将这三个数据传入php编辑界面,图片显示有三个数据,但实际上,数据的多少是由数据库所导出的数据 决定的.如 ...
 - Fiddler教程【转】
			
阅读目录 Fiddler的基本介绍 Fiddler的工作原理 同类的其它工具 Fiddler如何捕获Firefox的会话 Fiddler如何捕获HTTPS会话 Fiddler的基本界面 Fiddler ...
 - linux目录结构解析
			
"/" :Linux文件系统的入口.也是最高一级的目录. "/bin":基本系统所需要的命令,功能和"/usr/bin"类似,这个目录下的文 ...
 - oracle commond
			
常用commond alter user scott account unlock; --解锁账号 alter user scott identified by new_pwd; --设置密码 lsn ...
 - 用js,css3 做的一个球
			
用css3属性很容易做一个立方体,但是要做一个球体,会相对复杂些 原理是:球可以看做是由无数个圆圈构成,然后就可以用圆圈来做球, 下面的例子是我做的一个小球,由72个圆圈组成.如果把每个圆圈的背景颜色 ...