最近无聊。又重新装了个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 安装指导的更多相关文章

  1. selenium + python自动化测试环境搭建

    selenium的在python平台的搭建: 搭建平台windows 准备工具如下: --------------------------------------------------------- ...

  2. Page Object Model (Selenium, Python)

    时间 2015-06-15 00:11:56  Qxf2 blog 原文  http://qxf2.com/blog/page-object-model-selenium-python/ 主题 Sel ...

  3. selenium + python 多浏览器测试

    selenium + python 多浏览器测试 支持库包 在学习 Python + Selenium 正篇之前,先来看下对多浏览器模拟的支持.目前selenium包中已包含webdriver,hel ...

  4. selenium + python 自动化测试环境搭建

    selenium + python 自动化测试 —— 环境搭建 关于 selenium Selenium 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操 ...

  5. <译>Selenium Python Bindings 5 - Waits

    如今,大多数的Web应用程序使用AJAX技术.当页面加载到浏览器,页面中的元素也许在不同的时间间隔内加载.这使得元素很难定位,如果在DOM中的元素没有呈现,它将抛出ElementNotVisibleE ...

  6. <译>Selenium Python Bindings 2 - Getting Started

    Simple Usage如果你已经安装了Selenium Python,你可以通过Python这样使用: #coding=gbk ''' Created on 2014年5月6日 @author: u ...

  7. <译>Selenium Python Bindings 1 - Installation

    Installation Introduction Selenium Python bindings 提供了一个简单的API来使用Selenium WebDriver编写使用功能/验收测试.通过Sel ...

  8. selenium python 第一个脚本

    为什么选择python?我的回答很简单,简单易学,功能强大! 下面看看python和selenium 2的结合是什么样子吧 一.第一个selenium python脚本: #coding = utf- ...

  9. selenium + python自动化测试环境搭建--亲测

    环境准备: 1.下载所学安装包: setuptools https://pypi.python.org/packages/2.7/s/setuptools/ selenium https://pypi ...

随机推荐

  1. 【基础】Attribute的妙用

    一.何为Attribute 下面是微软官方对Attribute的解释: 公共语言运行时允许你添加类似关键字的描述声明,叫做Attributes,它对程序中的元素进行标注,如类型.字段.方法和属性等.A ...

  2. nginx的5个特点

    nginx的5个特点(2017/11/16 白杨整理) 1.动静分离 Nginx是一种轻量级,高性能,多进程的Web服务器,非常适合作为静态资源的服务器使用,而动态的访问操作可以使用稳定的Apache ...

  3. [转载] ConcurrentHashMap原理分析

    转载自http://blog.csdn.net/liuzhengkang/article/details/2916620 集合是编程中最常用的数据结构.而谈到并发,几乎总是离不开集合这类高级数据结构的 ...

  4. JS小游戏:贪吃蛇(附源码)

    javascript小游戏:贪吃蛇 此小游戏采用的是面向对象的思想,将蛇,食物,和游戏引擎分为3个对象来写的. 为方便下载,我把js写在了html中, 源码中暂时没有注释,等有空我在添加点注释吧. 游 ...

  5. Git提交到github上

    1.本地创建一个目录redis [guosong@etch171 mars171 redis]# pwd /data1/guosong/code/redis [guosong@etch171 mars ...

  6. 网页如何展示PPT文档

    最近再做一个新项目,其中有一个难点,就是如何在网页上展示PPT,我网上找到了几种方法,但是真正符合我目前这个项目的就只有这一种方法了,       使用PowerPoint to Flash将ppt文 ...

  7. JavaScript学习笔记(十二)——箭头函数(Arrow Function)

    在学习廖雪峰前辈的JavaScript教程中,遇到了一些需要注意的点,因此作为学习笔记列出来,提醒自己注意! 如果大家有需要,欢迎访问前辈的博客https://www.liaoxuefeng.com/ ...

  8. Bin、App_Data等文件夹详述(转自http://blog.csdn.net/zzjiadw/article/details/6801506)

    ASP.NET应用程序和ASP.Net网站所共有的文件: App_Browsers 包含 ASP.NET 用于标识个别浏览器并确定其功能的浏览器定义 (.browser) 文件.有关更多信息,请参见浏 ...

  9. CPU 虚拟化

    前面 虚拟化技术总览 中从虚拟平台 VMM 的角度,将虚拟化分为 Hypervisor 模型和宿主模型,如果根据虚拟的对象(资源类型)来划分,虚拟化又可以分为计算虚拟化.存储虚拟化和网络虚拟化,再细一 ...

  10. Python函数中如何定义参数

    一.位置参数:根据函数定义时的参数位置传递参数#形参和实参的个数必须一致def fun1(): print("运行结果") print("this is fun1(),n ...