1.1.简介

Selenium Python为使用Selenium WebDriver来编写功能/验证测试提供了一个简单的API接口。通过Selenium Python API,你可以以一种非常直观的方式来访问Selenium WebDriver的所有功能。

Selenium Python为访问诸如火狐、IE、Chrome等浏览器的Selenium WebDriver提供了一个简便的API接口,当前该支持Python2.7,3.5+。

本文档仅仅介绍Selenium2 WebDriver的API,Selenium1/Selenium RC的API不包含在内。

1.2.下载Selenium Python

你可以通过 浏览器访问PyPI -selenium 包来下载Selenium Python。但更推荐使用pip工具来安装selenium包。Python3.6标准库中自带pip,Python2.x需要自己单独安装。使用pip的话,你可以像下面这样来安装selenium:

$pip install selenium

你也可以考虑使用 virtualenv 来创建隔离的Python环境。Python3.6使用pyvenv ,它和virtualenv差不多。

1.3.驱动器(Driver)

要和选定的浏览器进行交互,Selenium需要一个驱动器。比如,如果选择使用火狐浏览器,需要 geckodriver。为了保证后文的实例能够正常运行,你先要正确安装对应的驱动器,并确保它在你系统的PATH路径中。比如,如果使用*niux系统,可以将其安装在/usr/bin 或者/usr/local/bin,或者将驱动器执行文件所在的文件夹加入PATH

如果忽略这一步的话,你将会得到下面的这样一个错误:

selenium.common.exceptions.WebDriverException: Message: ‘geckodriver’ executable needs to be in PATH.

Selenium支持的其他浏览器都有其对应的驱动器,可以通过下面的连接查阅你喜欢的浏览器的相应信息:

| Chrome: | https://sites.google.com/a/chromium.org/chromedriver/downloads |

| Edge: | https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/ |

| Firefox: | https://github.com/mozilla/geckodriver/releases |

| Safari: | https://webkit.org/blog/6900/webdriver-support-in-safari-10/ |

1.4.针对Windows用户的详细介绍

注意:要实际完成下面的安装操作,你的系统需要保证能正常联网

  1. 通过 Python.org可用MSI下载页面安装Python3.6.
  2. 使用cmd.exe程序开启一个命令提示符,像下面这样通过pip来安装selenium(假设你把Python安装到了C盘的根目录):
C:\Python35\Script\pip.exe install selenium

现在你可以使用Python来运行你的测试脚本。例如,你已经编写了一个基于Selenium的脚本并将其保存在C:\my_selenium_script.py,你可以像下面这样来运行它:

C:\Python35\python.exe C:\my_selenium_script.py

1.5.下载Selenium server

注意:只有当你想要使用远程Web驱动器的时候才需要Selenium server。查阅 Using Selenium with remote WebDriver章节来获得更多详细信息。如果你只是Selenium的初学者,你可以跳过本节继续阅读下一章。

Selenium server是一个Java程序,需要先安装Java运行时环境(JRE),推荐使用JRE1.6或更新的版本。

你可以从 selenium 网站下载页下载Selenium server 2.x。文件名应该像selenium-server-standalone-2.x.x.jar这样。下载Selenium server的最新2.x版本即可。

如果你的系统尚未安装Java运行时环境(JRE),你可以通过 Oracle 官网下载。如果你正在使用一个GNU/Linux系统并具有系统的root权限,也可以使用你操作系统相应的命令来安装JRE。

如果java命令存在于PATH(环境变量),你可以使用下面的命令来启动Selenium server:

java -jar selenium-server-stanalone-2.x.x.jar

使用你从网站下载的Selenium server的实际版本替换2.x.x

如果JRE是通过一个非root用户安装的,或者不在PATH(环境变量中),你可以通过相对或绝对地址来运行java命令。相似的,你也可提供Selenium server jar文件的绝对或相对地址。接着,命令将会变成下面这样:

/path/to/java -jar /path/to/selenium-server-standalone-2.x.x.jar

[译]Selenium Python文档:一、安装的更多相关文章

  1. [译]Selenium Python文档:目录

    作者:Baiju Muthukadan 协议:本文档采用知识共享署名 - 共享4.0国际许可. 原英文网址:http://selenium-python.readthedocs.io/index.ht ...

  2. [译]Selenium Python文档:八、附录:FAQ常见问题

    另外一个FAQ:https://github.com/SeleniumHQ/selenium/wiki/Frequently-Asked-Questions 8.1.怎样使用ChromeDriver ...

  3. [译]Selenium Python文档:二、初步开始

    2.1.简单使用 如果已经安装好了Selenium Python,你就可以像下面这样编写Python代码来使用它了: from selenium import webdriver from selen ...

  4. [译]Selenium Python文档:四、元素定位

    要定位一个页面中的元素有多中策略和方法.你可以根据实际情况选择其中最为合适的.Selenium为定位页面元素提供了下面的这些方法: find_element_by_id(使用id) find_elem ...

  5. [译]Selenium Python文档:七、WebDriver API接口

    由于API文档格式不太适合cnblog博客,暂且翻译一部分,且暂未校对 注意:这不是官方文档,官方 API文档在这里. 本章包含Selenium WebDriver的所有接口 推荐import风格 本 ...

  6. [译]Selenium Python文档:五、Waits等待

    大多数现代web应用都使用了AJAX技术.当浏览器加载一个页面的时候,该页面内的元素可能在不用的时间间隔内进行加载.这使得元素定位变得比较困难:如果一个元素还没有出现在DOM中,定位函数将会抛出一个E ...

  7. [译]Selenium Python文档:六、页面对象

    本章是介绍页面对象设计模式的教程.一个页面对象代表了web应用用户接口的一片区域,你的测试代码将与之交互的. 使用页面对象模式的好处: 可以创建在多个测试样例中都可使用的可重用代码 减少重复性代码 如 ...

  8. [译]Selenium Python文档:三、导航控制

    你使用WebDriver要做的第一件事就是访问一个链接.一般通过调用get方法来实现: driver.get("http://www.baidu.com") 在将控制权返给你的脚本 ...

  9. 基于 Python 官方 GitHub 构建 Python 文档

    最近在学 Python,所以总是在看 Python 的官方文档, https://docs.python.org/2/ 因为祖传基因的影响,我总是喜欢把这些文档保存到本地,不过 Python 的文档实 ...

随机推荐

  1. 使用express.js框架一步步实现基本应用以及构建可扩展的web应用

    最近过年在家有点懈怠,但是自己也不断在学习新的前端技术,在家琢磨了express.js的web框架. 框架的作用就是提高开发效率,快速产出结果.即使不使用框架,我们也会在开发过程中逐渐形成构成框架. ...

  2. Python系列之Collections内置模块(1)

    collections 是 python 的内置模块,源码位于 Lib/collections/__init__.py ,该模块提供了通用的数据容器. deque 容器对象 通过 from colle ...

  3. removeAll

    问题:无法移除2个集合中相同元素 方法:移除所包含的其所有元素. 在执行removeAll方法时,会先对集合元素进行比较,如果元素相等才执行移除操作,说到这,相信很多人都已经明白是怎么回事了,因为不相 ...

  4. Linux驱动技术(一) _内存申请

    先上基础,下图是Linux的内存映射模型,其中体现了Linux内存映射的几个特点: 每一个进程都有自己的进程空间,进程空间的0-3G是用户空间,3G-4G是内核空间 每个进程的用户空间不在同一个物理内 ...

  5. this的相关介绍与用法

    当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是this.因此,this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this,并 ...

  6. nginx : server_name localhost 和 chrome : Provisional headers are shown

    问题相关问题现象:解决思路解决方案总结 问题相关 nginx : server_name localhost chrome : Provisional headers are shown 问题现象: ...

  7. WebServerice的发布

    在webserverice一文中,我们简单的介绍了一下什么是webserverice,以及如何建立一个webserverice服务.今天,我们一起学习下webserverice是如何发布的. 为什么要 ...

  8. vs2010入门程序和出错问题解决方案

    本篇文章分两个部分: 第一,如何建立一个Helloword工程 1.打开Vs2010新建项目 2.选择Visual C++>>Win32>>Win32控制台应用程序,输入项目名 ...

  9. udp 双机通信(服务器循环检测)2

    此文摘自:http://blog.csdn.net/qinpeng100423/article/details/8980423,谢谢了 自己上一篇写的udp通信,只能运行一次,参考了这位博主的,只是把 ...

  10. iphone在iframe页面的宽度不受父页面影响,避免撑开页面

    工作中有个需求,就是产品页面通过iframe引用显示产品协议页,要求不要横向滑动,只需要竖向滑动,但在iphone中引用的iframe会撑开父页的宽度,而在android端浏览器这不会. <di ...