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. 使用fullPage.js遇到的问题以及翻译

    使用fullPage.js做一简单页面,遇一古怪问题:.section中的h1标签始终被一插件生成的标签包裹,导致样式调整好不困难!花费数小时排查为何会生成这样一个标签,最终在fullPage.js的 ...

  2. ThreadLocal模式的原理

    在JDK的早期版本中,提供了一种解决多线程并发问题的方案:java.lang.ThreadLocal类.ThreadLocal类在维护变量时,实际使用了当前线程(Thread)中的一个叫做Thread ...

  3. 【noip 2009】 乌龟棋 记忆化搜索&动规

    题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起 ...

  4. Linux实战教学笔记12:linux三剑客之sed命令精讲

    第十二节 linux三剑客之sed命令精讲 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件 ...

  5. Jenkins添加用户

    新建用户 Jenkins刚开始的界面是允许访客进行所有操作的,这时Jenkins是有安全隐患的,也不容易去管理.这时,我们需要管理Jenkins的权限,对它的权限进行设置.关于Jenkins权限设置的 ...

  6. Swift 2.0 自定义cell和不同风格的cell

    昨天我们写了使用系统的cell怎样创建tableView,今天我们再细分一下,就是不同风格的cell,我们怎写代码.先自己创建一个cell,继承于UItableviewcell 我们看看 cell 里 ...

  7. xml类型转换列表显示 SQL查询

    数据库中存在字段类型为xml 的数据, 现举例 xml 字段存储的数据为: <MortgageInfoShipList> <ITEMS> <ITEM> <Sh ...

  8. android开发过程中踩过的坑

    1) 4.X下 viewgroup 不一定会向下传递requestLayout,当onlayout的速度比较慢(比如子View比较复杂之类的原因),系统会跳帧!此时子View下层的view可能就不会再 ...

  9. 跟着内核学框架-从misc子系统到3+2+1设备识别驱动框架

    misc子系统在Linux中是一个非常简单的子系统,但是其清晰的框架结构非常适合用来研究设备识别模型.本文从misc子系统的使用出发,通过了解其机制来总结一套的设备识别的驱动框架,即使用使用同一个驱动 ...

  10. css 居中,中央

    在我的技巧里,有4中居中中央的方法: 1.position:absolute; top:50%;left:50%; margin : -x 0 0 -x; 这是绝对定位的方法,通过算法移动,坏处就是必 ...