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. C# vs TypeScript - 高级类型

    总目录 从C#到TypeScript - 类型 从C#到TypeScript - 高级类型 从C#到TypeScript - 变量 从C#到TypeScript - 接口 从C#到TypeScript ...

  2. 编写JQuery插件-2

    继续上一节的代码 (function(){ /* code */ })() 来我们介绍一下吧,首先定义一个匿名函数 fnction(){/* 这里放置代码 */} 然后用括号括起来, (fnction ...

  3. Struts2 struts.xml配置

    <?xml version="1.0" encoding="GBK"?> <!--指定 Struts2 的DTD信息 DTD 指 Docume ...

  4. 解决maven 下载 hadoop-client 客户端 报错的问题

    第一.pom.xml配置: <dependency> <groupId>org.apache.hadoop</groupId> <artifactId> ...

  5. std::vector 源代码

    vector身为一个动态数组,每次以空间不够的时候会以2倍的倍数增加,而且每次扩充的时候分为3部,分配内存,拷贝数据,释放内存 vector内部有两个成员变量,begin,finish ,endcat ...

  6. matlab 嵌套循环的学习

    循环嵌套带嵌套的循环一般为两重,举例1: disp('一个简单的二重for循环'); : : result = ii *jj ; fprintf(' %d * %d = %d \n',ii,jj,re ...

  7. 搜查的PHPCMS,织梦DEDECMS 部分对比分析

    对于初学者来说,我想会有相对的了解和认识,自然也有助于今后前端面试的一些小细节!当下学的自然是phpcms phpcms优点: 1. 模块化安装,非常适合安装,拆卸非常方便的. 2. 灵活的标签语法, ...

  8. MASM32使用教程

    代码如果你在用汇编语言来开发windows下的程序的话,MASM32是很好的选择. (Masm32下载地址请用google搜索罢.) 工欲善其事,必先利其器. 本文主要针对masm32 v8来说明三点 ...

  9. 如何通过注解Bean类来封装SQL插入语句

    整体思路是酱紫的: 给bean上注解说明该bean对应着数据库中哪张表,给每个bean的属性都注解说明各自对应着这张表的哪个字段. 通过类反射获取表名,通过逐个反射每个属性的getter方法,获取注解 ...

  10. Linux下SVN服务器搭建配置

    Linux下SVN服务器搭建配置 1.SVN服务安装 yum install subversion 2.创建SVN代码仓库 mkdir /data/svn svnadmin create /data/ ...