附录:常见问题
另外一份常见问题解答:https://code.google.com/p/selenium/wiki/FrequentlyAskedQuestions
怎样使用ChromeDriver
下载最新的chromedriver,解压文件:
unzip chromedriver_linux32_x.x.x.x.zip
你应该会看到一个曾经的chromedriver
,现在你可以像这样创造一个Chrome Driver的实例了:
driver - webdriver.Chrome(executable_path="/path/to/chromedriver")
使用示例的剩余部分在其他文档里已经称为了
Selenium 2支持XPath 2.0吗?
相关链接:http : //seleniumhq.org/docs/03_webdriver.html#how-xpath-works-in-webdriver
Selenium委托XPath去查询浏览器自己的XPath引擎,因此浏览器支持什么XPath,Selenium就支持什么。在不支持XPath引擎的浏览器里(IE 6,7,8),Selenium仅支持XPath 1.0
怎么滚动到页面的底部?
相关链接:http : //blog.varunin.com/2011/08/scrolling-on-pages-using-selenium.html
您可以使用execute_script
方法来在载入的页面上执行JS,因此,您可以调用JS的API来滚动到页面的底部或其他任意位置。
下面是一个滚动到底部的实例:
driver.execute_script("window.scrollTo(0,document.body.scrollHeight);")
DOM的窗口对象有一个scrollTo方法来在打开的窗口中滚动到任意位置, scrollHeight是所有元素的一个通用属性,document.body.scrollHeight
是页面整个body的高度
怎样使用定制的Firefox个人资料自动保存文件
相关链接:http : //stackoverflow.com/questions/1176348/access-to-file-download-dialog-in-firefox
http://blog.codecentric.de/en/2010/07/file-downloads-with-selenium-mission-impossible/
第一步:确定你想要自己保存的文件类型。要确认你想自动下载的内容类型,你可以使用curl:
curl -I URL|grep "Content-Type"
另外一个发现内容类型的方法是使用请求模块:
import requests
content_type = requests.head('http://www.python.org').headers['content-type']
print(content_type)
一旦你确定了内容类型,你就可以设置firefox profilebrowser.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()
上面的示例中,我们用了application/octet-stream
这个内容类型,browser.download.dir
指定了你想要保存下载文件的路径
怎么向文件上传表单上传文件?
选中<input type="file">
元素,调用send_keys()
方法,传递文件的路径。可以传递绝对路径或者相对测试脚本的路径。要注意和窗户的Unix系统路径名的差异
如何使用萤火虫?
首先下载Firebug XPI文件,然后调用add_extension
方法:
from selenium import webdriver
fp = webdriver.FirefoxProfile()
fp.add_extension(extension='firebug-1.8.4.xpi')
fp.set_preference("extension.firebug.currentVersion","1.8.4") # Avoid startup screen
browser = webdriver.Firefox(firefox_profile=fp)
怎样给当前窗口截图?
使用webdriver提供的save_screenshot方法:
from selenium import webdriver
driver = webdriver.Firefox()
driver.get('http://www.python.org/')
driver.save_screenshot('screenshot.png')
driver.quit()