Selenium Python 安装指导
最近无聊。又重新装了个selenium
果然时代变了。安装的时候的方法和以前不太一样了。因此觉得有必要单列出来加以说明
另外备注:测试小伙伴们。安装此类工具报错。尝试以下两个方案之一:
1.请转stackoverflow
2.code review
下面以第二种方法解决安装问题
如果你还看的是非官方文档的安装使用方法。而是某些旧社会的博客。那么很可能你就这样中奖了。
正确的安装姿势应该是这样的(以 chrome + python + selenium 为例):
1. 打开 https://chromedriver.storage.googleapis.com/index.html
2. 找到最新版本(备注:2.30代表的版本大于2.9.此处2.9相当于2.09.不得不吐槽一下这个版本号设定)
3. 下载对应版本(备注:windows平台下。没有64位exe插件。但是32位的可以兼容64位)
4. 确认已安装的python版本(大于selenium标注的版本。一般而言最新版是向下兼容3.x的版本的。)
5. 自己下载selenium包 或者使用 pip install selenium 命令解决问题
至此。安装已经完成(感觉比当年用的时候要更快)
接下来是使用的方法:
A. 示例代码
B. 内容说明
1. 第八行必须传入executable的值。(即将截图中代码第八行改为: driver = webdriver.Chrome(executable).)
此处由于早先的selenium的设计模式。之前selenium是通过环境变量设置来识别执行路径的。
现在源码的相关部分已经更改。因此使用selenium也无需配置环境变量了。
2. 第十行必须使用完整的url链接(url包含前缀http://或https://)。否则无法解析域名
C. 针对B1的附加说明
找出这个问题。首先看报错内容(不传递绝对路径,即driver = webdriver.Chrome()):
然后查看源码。可以发现。构造方法(def __init__)中。只有executable是没有默认值的。因此必须在使用webdriver.Chrome的时候传递路径以初始化该变量。否则报错。
这样做的好处就是。在使用selenium的时候,多个浏览器再也不用分别配置环境变量了。把所有的驱动程序放在项目文件目录中。只需要在启动的时候设定指向位置即可
当然。也可以改动源码。给这个变量一个default值。因此其他浏览器的使用就不多加说明了。
最后。用driver来做声明变量其实并不是特别好的设计模式。如果selenium要做自动化的话,脚本必须封装为函数
调用则使用类似unittest框架的东西来做,这样的话,内部变量基本上会使用如下写法
# 初始化函数
def setUp(self):
self.browser = webdriver.Chorme(executable)
# 执行脚本
def test_case1(self):
self.browser.get('http://www.baidu.com')
......
这样做,就可以保证环境和数据配置。并且可以使用很多现有的方法。是比较推荐的写法。
如果有进阶的兴趣。推荐去看《python web开发测试驱动方法》。对于初学者理解功能测试模式还是很有帮助的。
Selenium Python 安装指导的更多相关文章
- selenium + python自动化测试环境搭建
selenium的在python平台的搭建: 搭建平台windows 准备工具如下: --------------------------------------------------------- ...
- Page Object Model (Selenium, Python)
时间 2015-06-15 00:11:56 Qxf2 blog 原文 http://qxf2.com/blog/page-object-model-selenium-python/ 主题 Sel ...
- selenium + python 多浏览器测试
selenium + python 多浏览器测试 支持库包 在学习 Python + Selenium 正篇之前,先来看下对多浏览器模拟的支持.目前selenium包中已包含webdriver,hel ...
- selenium + python 自动化测试环境搭建
selenium + python 自动化测试 —— 环境搭建 关于 selenium Selenium 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操 ...
- <译>Selenium Python Bindings 5 - Waits
如今,大多数的Web应用程序使用AJAX技术.当页面加载到浏览器,页面中的元素也许在不同的时间间隔内加载.这使得元素很难定位,如果在DOM中的元素没有呈现,它将抛出ElementNotVisibleE ...
- <译>Selenium Python Bindings 2 - Getting Started
Simple Usage如果你已经安装了Selenium Python,你可以通过Python这样使用: #coding=gbk ''' Created on 2014年5月6日 @author: u ...
- <译>Selenium Python Bindings 1 - Installation
Installation Introduction Selenium Python bindings 提供了一个简单的API来使用Selenium WebDriver编写使用功能/验收测试.通过Sel ...
- selenium python 第一个脚本
为什么选择python?我的回答很简单,简单易学,功能强大! 下面看看python和selenium 2的结合是什么样子吧 一.第一个selenium python脚本: #coding = utf- ...
- selenium + python自动化测试环境搭建--亲测
环境准备: 1.下载所学安装包: setuptools https://pypi.python.org/packages/2.7/s/setuptools/ selenium https://pypi ...
随机推荐
- C#实现DirectShow技术开发准备
DirectShow组件在“C:\WINDOWS\system32”目录下的Quartz.dll动态库中,要使C#代码引用COM对象和接口,必须将COM类型库转换为.NET框架元数据,从而有效地创建一 ...
- C#截取当前活动窗体的图片
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- Celery 源码解析六:Events 的实现
在 Celery 中,除了远程控制之外,还有一个元素可以让我们对分布式中的任务的状态有所掌控,而且从实际意义上来说,这个元素对 Celery 更为重要,这就是在本文中将要说到的 Event. 在 Ce ...
- eclipse搭建maven ssm项目
file --> new --> maven project -->创建个简单的maven项目 会报错,没事 右键 properties 先去掉,然后再勾上 接下来配置maven的相 ...
- ERP中文档权限设置:只能浏览不能下载?如何实现
文档中心的文件夹授权只能是对岗位或者用户授权(这个跟我们的[[url=]用户及权限[/url]]下面的授权方式还不太一样)比如:要将文档中心的文件夹[公司文档]授权给用户A和用户B 授权逻辑: 软件界 ...
- 1.0-springboot的java配置方式
1.创建User实体类. @Data public class User { private String username; private String password; private Int ...
- 自己动手写Redis客户端(C#实现)4 - 整数回复
整数回复 整数回复就是一个以 ":" 开头, CRLF 结尾的字符串表示的整数. 比如说, ":0\r\n" 和 ":1000\r\n" 都 ...
- 解决WebSocket兼容ie浏览器版本问题
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7942323.html 在使用Netty进行WebSocket开发时,测试发现:ie 11系列个别低版本连接W ...
- Python带参数的装饰器
在装饰器函数里传入参数 # -*- coding: utf-8 -*- # 2017/12/2 21:38 # 这不是什么黑魔法,你只需要让包装器传递参数: def a_decorator_passi ...
- 基于Flink秒级计算时CPU监控图表数据中断问题
基于Flink进行秒级计算时,发现监控图表中CPU有数据中断现象,通过一段时间的跟踪定位,该问题目前已得到有效解决,以下是解决思路: 一.问题现象 以SQL02为例,发现本来10秒一 ...