======================
Selenium客户端驱动程序
介绍
Selenium 2,又名 WebDriver,它的主要新功能是集成了 Selenium 1.0 以及 WebDriver(WebDriver 曾经是 Selenium 的竞争对手)。也就是说 Selenium 2 是 Selenium 和 WebDriver 两个项目的合并,即 Selenium 2 兼容 Selenium,它既支持 Selenium API 也支持 WebDriver API。 WebDriver是一个用来进行复杂重复的web自动化测试的工具。意在提供一种比Selenium1.0更简单易学,有利于维护的API。它没有和任何测试框架进行绑定,所以他可以很好的在单元测试和main方法中调用。一旦创建好一个Selenium工程,你马上会发现WebDriver和其他类库一样:它是完全独立的,你可以直接使用而不需要考虑其他配置,这个Selenium RC是截然相反的。
selenium
包用于自动化Python的Web浏览器交互。
首页: | http://www.seleniumhq.org |
---|---|
文件: | selenium package API <https://seleniumhq.github.io/selenium/docs/api/py/api.html> _ |
Dev : | https://github.com/SeleniumHQ/Selenium |
PyPI : | https://pypi.org/project/selenium/ |
IRC : | freenode上的#selenium 频道 |
支持多种浏览器/驱动程序(Firefox,Chrome,Internet Explorer)以及远程协议。
支持的Python版本
- Python 2.7,3.4 +
安装
如果你的系统上有pip <https://pip.pypa.io/>
_,你可以简单地安装或升级Python绑定::
pip install -U selenium
或者,您可以从PyPI <https://pypi.org/project/selenium/#files>
_(例如selenium-3.14.0.tar.gz)下载源代码分发,解压缩它,然后运行::
python setup.py install
注意:您可能需要考虑使用virtualenv <http://www.virtualenv.org/>
_来创建隔离的Python环境。
驱动程序
Selenium需要驱动程序与所选浏览器进行交互。火狐,
例如,需要geckodriver <https://github.com/mozilla/geckodriver/releases>
_,需要先安装才能运行以下示例。确保它在你的PATH
中,例如,将它放在/ usr / bin
或/ usr / local / bin
中。
如果不遵守此步骤,将会出现错误`selenium.common.exceptions.WebDriverException:消息:'geckodriver'可执行文件需要在PATH中。
其他支持的浏览器将有自己的驱动程序可用。下面是一些比较流行的浏览器驱动程序的链接。
Example0:
*打开一个新的Firefox浏览器
*在给定的URL加载页面
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://seleniumhq.org/')
Example1:
*打开一个新的Firefox浏览器
*加载雅虎主页
*搜索“seleniumhq”
*关闭浏览器
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
browser = webdriver.Firefox()
browser.get('http://www.yahoo.com')
assert 'Yahoo' in browser.title
elem = browser.find_element_by_name('p') # Find the search box
elem.send_keys('seleniumhq' + Keys.RETURN)
browser.quit()
Example2:
Selenium WebDriver通常用作测试Web应用程序的基础。这是一个使用Python标准unittest <http://docs.python.org/3/library/unittest.html>
_ library的简单示例:
import unittest
from selenium import webdriver
class GoogleTestCase(unittest.TestCase):
def setUp(self):
self.browser = webdriver.Firefox()
self.addCleanup(self.browser.quit)
def testPageTitle(self):
self.browser.get('http://www.google.com')
self.assertIn('Google', self.browser.title)
if __name__ == '__main__':
unittest.main(verbosity=2)
Selenium Server(可选)
对于普通的WebDriver脚本(非远程),不需要Java服务器。
但是,要使用Selenium Webdriver Remote或传统的Selenium API(Selenium-RC),您还需要运行Selenium服务器。服务器需要Java Runtime Environment(JRE)。
单独下载服务器,网址为:http://selenium-release.storage.googleapis.com/3.14/selenium-server-standalone-3.14.0.jar
从命令行运行服务器::
java -jar selenium-server-standalone-3.14.0.jar
然后运行Python客户端脚本。
使用The Source Luke!
在线查看源代码:
官方: | https://github.com/SeleniumHQ/selenium/tree/master/py |
---|
评论已关闭