selenuim +python环境配置遇到的诸多问题
自动化测试入门,总结一下安装selenium、python以及配置webdriver遇到的问题:
准备工作:
1、下载火狐浏览器并安装插件selenium IDE、Firebug~~
2、下载安装python,并配置环境变量
3、下载setuptools(python基础工具包)并解压,通过cmd命令进入该解压目录,执行文件setup.py
E:\Software\python\setuptools-28.8.0>python setup.py install
网上很多资料都说执行ez_setup.py文件,然后本人下载的28.8.0版本的并没有ez_setup.py文件,于是就尝试执行setup.py发现可以运行~
4、下载pip(python的安装包管理工具)并解压,通过cmd命令进入该解压目录,执行文件setup.py
E:\Software\python\pip-9.0.1>python setup.py install
然后切换到python目录Scripts文件夹下执行 D:\Programs\Python\Python35-32\Scripts>easy_install pip
5、下载selenium3
可直接使用cmd命令下载,在python的安装路径scripts文件下运行:
D:\Programs\Python\Python35-32\Scripts> pip install -U selenium
或者直接下载selenium,并解压文件夹将整个目录放到D:\Programs\Python\Python35-32\Lib\site-packages目录下。
这里我下载的selenium3.0.1版本解压后文件夹名是“selenium-3.0.1”,然后尝试以下脚本:
from selenium import webdriver
browser = webdriver.Firefox()
browser.get("http://www.baidu.com")
browser.find_element_by_id("kw").send_keys("selenium")
browser.find_element_by_id("su").click()
browser.quit()
报错ImportError: No module named “selenium”。解决办法:将“selenium-3.0.1”文件夹重命名为“selenium”,如果不改文件夹名称,导入包名的时候就必须用文件夹的名字,即from selenium-3.0.1 import webdriver而“-”为非法字符也会报错,可以使用selenium3.0.1这种命名,总之名称要相同才能识别。
重命名为selenium后继续运行~
接着是webdriver报错selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.这里如果你的火狐浏览器安装不是默认路径,需要修改Python的两个文件配置(即path改为firefox的安装路径),
D:\Programs\Python\Python35-32\Lib\site-packages\selenium-3.0.1-py3.5.egg\selenium\webdriver\firefox的
webdriver.py文件中修改为
def_init_(self,firefox_profile=None,firefox_binary=FirefoxBinary("D:/Program Files (x86)/Mozilla Firefox/firefox.exe")
Firefox_binary.py文件中修改为
def_init_(self,firefox_path="D:/Program Files (x86)/Mozilla Firefox/firefox.exe",log_file=None);
然后再次尝试,仍然报错,网上查资料说selenium 3.x开始,webdriver/firefox/webdriver.py的__init__中,executable_path="geckodriver";而2.x是executable_path="wires",firefox 47以上版本,需要下载第三方插件geckodriver,下载到任意目录,解压后将该路径加入到PC的path。
仍然报错!!!尝试直接把geckodriver.exe放到python的根目录下,由于python的路径已经配置过且成功了,所以geckodriver的路径就不用单独配置了,这么一试调用的浏览器果然打开了!但是仍然报错WebDriverException:Unsupported Marionette protocol version 2 , required 3 ,这个报错在网上几乎查不到资料,折腾了两天,做了无数的尝试:
把火狐浏览器卸载重装,安装至默认路径(webdriver.py和firefox_binary.py文件恢复原来的代码)。
python也卸载重装,安装至默认路径(本人原来的python是很久以前安装的,那时候也不懂里面的任何含义,重新安装时发现python3.5.2可以自动配置环境变量,且安装时可以勾选pip、setuptools等工具包,后面这些工具的安装就都免了,但是selenium还是需要手动安装或者用cmd命令下载安装,不要忘了geckodriver.exe放到python路径下)
降低火狐版本(降低火狐版本要注意把火狐的自动更新关掉,以免它自动升级回最新版本),原本是最新版本,后来降到42报错WebDriverException:Missing ‘marionetteProtocol’ field in handshake,也就是火狐版本高或者低都会报错。
修改脚本browser = webdriver.Firefox()改为browser = webdriver.Firefox(“executable_path="C:\Users\FF\AppData\Local\Programs\Python\Python35\geckodriver.exe"),把geckodriver的绝对路径直接写到脚本里,直接告诉它插件在哪,免得它总是找不到。
更换geckodriver版本,下载了11.1.1、11.1.0、11.10.0三个版本,更换尝试。
最后也不知道哪一步是关键,总之最后,python3.5、selenium3.0.1、geckodriver版本11.1.1,火狐浏览器不小心被更新到最新50的,脚本跑通了!!!如释重负~然后把webdriver.Firefox()里的绝对路径去掉,也没问题(难道是它第一次找不到路径,给它指条路认识了,后面就能自己找到了?)
后记总结:
1、第三方插件geckodriver很关键,火狐47+版本需要安装geckodriver.exe
2、geckodriver.exe的路径配置在系统变量Path下即可,我之所以放到python路径下,是为了方便,以及前面遇到的问题太多,网上有人建议这么放,确实有效果~
3、火狐浏览器如果没有安装至默认目录,webdriver.py和firefox_binary.py的配置需要更改
4、各软件及插件之间的版本匹配很微妙,至今也没有明白~
万事开头难,学习永无止尽~~~~~~~
selenuim +python环境配置遇到的诸多问题的更多相关文章
- 1 python学习——python环境配置
1 python学习--python环境配置 要学习python语言,光看书看教程还是不好,得动手去写.当然,不管学习什么编程语言,最佳的方式还在于实践. 要实践,先得有一个Python解释器来解释执 ...
- VScode中python环境配置
vscode中python环境配置 想要在vscode中运行python代码必须要告诉vscode使用哪个解释器才行 方法1. 打开命令面板(Ctrl+Shift+P)输入Python: Select ...
- MxNet C++和python环境配置
MxNet C++和python环境配置 安装文件: 1.为了与python已经安装好的版本一致,在这个网站下载mxnet 1.0.0的源码 https://github.com/apache/inc ...
- 1.python环境配置 - python基础入门
工欲善其事必先利其器,python学习首先要做得就是配置python环境.配置环境只需要下载Pycharm 和 Anaconda两个安装包即可,请跟上我得步伐,一步一步操作. 重要的事情说三遍: 先安 ...
- VsCode中编写python环境配置
1. VsCode中编写python环境配置 1.1. 前言 有过开发经验都知道idea一系列的软件虽然功能比较多,但比较容易卡,电脑不好还真容易上火,这里我想要入门python,还是选了款vscod ...
- Python环境配置安装
2016年12月20日14:15:23 -------------- 参考菜鸟教程: Python 环境搭建 | 菜鸟教程 http://www.runoob.com/python/python-i ...
- thrift 服务端linux C ++ 与客户端 windows python 环境配置(thrift 自带tutorial为例)
关于Thrift文档化的确是做的不好.摸索了很久才终于把跨linux与windows跨C++与python语言的配置成功完成.以下是步骤: 1) Linux下环境配置 ...
- Selenium WebDriver + Python 环境配置
1. 下载必要工具及安装包 1.1.[Python开发环境] 下载并安装Python 2.7.x版本(当前支持2.x版本,不要下载最新的3.X的版本因为python3并非完全兼容python2) ...
- Python环境配置及项目建立
一.安装Python Python比较稳定的两个版本是Python 3.5和Python 2.7,我用的是Python 2.7,下载地址是:https://www.python.org/downloa ...
随机推荐
- sea.js,spm学习
安装spm 下载sea.js 运行spm npm install spm@2.x -g npm install spm-build -g 下载sea.js git clone https://gith ...
- 采用python获得并修改文件编码(原创)
windows和linux采用了不同的编码,这让很多人伤透了脑经,这里我采用了Python的chardet库获得代码的编码,然后修改编码. 1.首先需要安装chardet库,有很多方式,我才用的是比较 ...
- AOP和IOC理解
在百度上看到一篇很有意思的文章,是对AOP的一种解释,如下:(摘自:百度文库的 AOP和IOC最容易理解的说明(Spring知识小计)): IOC,依赖倒置的意思, 所谓依赖,从程序的角度看,就是比如 ...
- Java Fx-安装E(FX)CLIPSE IDE
安装E(FX)CLIPSE IDE 本文主要介绍如何在Eclipse Mars 4.5.0版本上安装e(fx)clipse. 本文中的介绍和截图使用了纯净安装的为RCP和RAP开发者准备的Eclips ...
- IP工具类——IpAddress.java
根据IP地址获取详细的地域信息,也可通过 http://whois.pconline.com.cn/ 获取地址信息. 源码如下:(点击下载 IpAddress.java) import java.i ...
- Visual Studio 内置快速生产代码简写集合
工作之余,整理了一下,Visual Studio 里面的快速生产代码缩写集合,这个拿出来分享想一下,希望对您有所帮助. 文件下载地址:VS内置生产代码缩写集合文档.rar 首字母 简写 生成代码 a ...
- 李洪强漫谈iOS开发[C语言-031]-逻辑短路
- NavigationDrawer+Fragment实现侧滑菜单效果
学习了NavigationDrawer 官方Support包中的SlidingMenu版本,练了下手.用到了ListView中item不同的布局 以后会升级加上ViewPager和GridView实现 ...
- 【HDOJ】3127 WHUgirls
#include <stdio.h> #include <string.h> #define mymax(a, b) (a>b) ? a:b typedef struct ...
- 利用if else判断几点是什么时间段
static void Main(string[] args) { while (true) { int a; ...