自动化测试入门,总结一下安装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 ...
随机推荐
-
groovy–运算符重载
Groovy支持运算符重载,各种运算符被映射到普通的java对象的方法调用,这就使得开发者可以利用运算符重载的优势来编写自己的Java或者groovy对象. 下面的表格描述了groovy中的操作符所映 ...
-
CentOS 6.5 网络配置(转载)
From:http://blog.csdn.net/leave00608/article/details/19814063 1.配置网卡IP地址 vim /etc/sysconfig/network- ...
-
PHP杂记
SOAP: 感觉是类似于Java中的HttpClient的东西,和curl也有点像. PHPStorm中查看所有的函数结构(Structure):Alt+7 查找方法或类(Symbol Name 函数 ...
-
在VS中关于MySQL的相关问题
最近在vs上折腾mysql数据库 遇到了一些小问题,这里记录一下 问题一:数据源选择中没有mysql数据库的选项 解放方法: 1.安装MySql的VS插件(版本请下载最新版)mysql-for-vis ...
-
NGINX小技巧--将所有目录和目录下所有文件分别给与不同的权限
为了安全,有时要将文件的权限进行限制,但,目录如果没有755,则不能进入. 所以需要分别给权限 find ./ -type f -name "*" |xargs ls -l
-
灵玖软件NLPIRParser智能文本聚类
随着互联网的迅猛发展,信息的爆炸式增加,信息超载问题变的越来越严重,信息的更新率也越来越高,用户在信息海洋里查找信息就像大海捞针一样.搜索引擎服务应运而生,在一定程度上满足了用户查找信息的需要.然而互 ...
-
1041: [HAOI2008]圆上的整点
1041: [HAOI2008]圆上的整点 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4298 Solved: 1944[Submit][Sta ...
-
FTP连接池
我们项目使用的是 Apache的(commons-net-3.2.jar) FTPClient,但是系统偶尔会有异常,趁着刚解决完,总结一下. 日志中提示是类似 java.lang.Exception ...
-
【转】SpringBoot——web项目下读取classpath下的文件心得
在读取springBoot+gradle构建的项目时,如果使用传统的FileInputStream读取文件流或者ResourceUtils工具类的方式,都会失败,下面解释原因: 一.读取文件的三种方式 ...
-
div中让内容能不换行就尽量不换行.【纯原】
div中让内容能不换行就尽量不换行,部分左对齐,部分右对齐. <html> <head> <title>九歌·少司命</title> <style ...