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. 使用Navicat Premium 链接本地数据库的方法

    在工作中,为了更方便的使用数据库,不免会用到Navicat Premium: 于是在重新安装电脑系统之后,原本想在其中链接一下本地数据库, 只是在链接途中要写的密码一项却不晓得应该写什么,想了很久密码 ...

  2. 《JAVASCRIPT高级程序设计》表单基础知识和文本框脚本

    在HTML中,表单是由<form>元素来表示,在javascript中,表单对应的是HTMLFormElement类型,它具有一些独有的属性和方法: 一.表单基础知识 1.取得表单的方式 ...

  3. HTML css 格式布局

    CSS(cascading style sheets,层叠样式表),作用是美化HTML网页. /*注释*/   注释语法 2.1 样式表的基本概念 2.1.1样式表的分类 1.内联样式表 和HTML联 ...

  4. setObject:forKey和setValue:forKey的区别

    setObject:forKey: 是NSMutableDictionary类的方法                              key参数类型可以是任意类型对象             ...

  5. 税号输入框 将input框中的输入自动转化成半角大写

    这两天出了这么一个需求,输入税号的时候,需要自动将其转化为半角大写,并且阻止标点符号中文汉字的输入.(下面会有:全半角转换.文本框选中.光标位置判断.设置光标位置 这些内容) 然后我就开始了慢慢查找资 ...

  6. spring配置文件头部xmlns配置精髓

    <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w ...

  7. JSON - 使用cJSON 解析Qt通过UDP发送的JSON数据

    1,cJSON支持在C程序中创建和解析JSON数据,其提供多种方法供C程序使用,最直接的是将cJSON.c和cJSON.h加入到C工程中,源代码:https://github.com/DaveGamb ...

  8. jQuery基本知识

    jquery基本操作笔记   jq和js 可以共存,不能混用: 1 2 3 4 5 6 $('.box').css('background','red'); $(".box").c ...

  9. nodejs中异步

    nodejs中的异步 1 nodejs 中的异步存在吗? 现在有点 javascript 基础的人都在听说过 nodejs ,而只要与 javascript 打交到人都会用或者是将要使用 nodejs ...

  10. JS分两种数据类型,你都知道吗?

    大牛请无视此篇! JS主要分基本数据类型和引用数据类型,这两者区别可大了,此篇看完必有长进,下面进入正题 首先我们看下什么是基本数据类型(概念我就不说了,直接上代码): var i = 10: var ...