selenium+python启动浏览器出错,安装浏览器驱动

WebDriver 支持 Firefox (FirefoxDriver)、IE (InternetExplorerDriver)、Opera (OperaDriver) 和 Chrome (ChromeDriver) 。
下载ChromeDriver.exe、IEDriverServer.exe放到D:\python27
 
执行:

# coding = utf-8
from selenium import webdriver
browser = webdriver.Chrome()
browser.get("http://www.baidu.com")
browser.find_element_by_id("kw").send_keys("selenium")
browser.find_element_by_id("su").click()
browser.quit()

 
 
一、火狐出错后解决的办法:from selenium import webdriver Traceback (most recent call last): File "<pys
1. selenium 3.x开始,webdriver/firefox/webdriver.py的__init__中,executable_path="geckodriver";而2.x是executable_path="wires"
2. firefox 47以上版本,https://github.com/mozilla/geckodriver/releases(下载这个),下载到任意电脑任意目录,解压后将该路径加入到PC的path(针对windows)即可。

二、IE浏览器:Unexpected error launching Internet Explorer. Protected Mode settings are no

其原因是微软自IE7以后加入了Protected Mode的概念,为何如此请参考 为什么我们需要安全模式
在这种情况下,要继续启动IE WebDriver进行自动化测试,需要修改注册表,如下:
1、运行 regedit.exe
2、找到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones
3、可以看到
selenium+python启动浏览器出错,安装浏览器驱动      selenium+python启动浏览器出错,安装浏览器驱动
如果1-4号Key下面都有名叫2500的属性,则将其值改为相同的非零值(这个地方我还没有在其他人的系统上尝试过,我自己的系统上默认的是1,2号key  2500属性值为3,3,4号key 2500属性为0,我将3,4号key的值置为了3,IE WebDriver成功启动)
 
 
三、谷歌:版本需要对应chromedriver.exe的版本
selenium+python启动浏览器出错,安装浏览器驱动

(问题现象如上,chrome浏览器版本:58.0.3029.110      chromedriver.exe版本:v2.9.*

原因:chromedriver.exe版本不支持以上版本的chrome浏览器,即两者不配套,见blog:http://blog.csdn.NET/huilan_same/article/details/51896672)

跟以下对应的版本有不一致,

chromedriver版本 支持的Chrome版本
v2.30 v58-60
v2.29 v56-58
v2.28 v55-57
v2.27 v54-56
v2.26 v53-55
v2.25 v53-55
v2.24 v52-54
v2.23 v51-53
v2.22 v49-52
v2.21 v46-50
v2.20 v43-48
v2.19 v43-47
v2.18 v43-46
v2.17 v42-43
v2.13 v42-45
v2.15 v40-43
v2.14 v39-42
v2.13 v38-41
v2.12 v36-40
v2.11 v36-40
v2.10 v33-36
v2.9 v31-34
v2.8 v30-33
v2.7 v30-33
v2.6 v29-32
v2.5 v29-32
v2.4 v29-32

查看谷歌版本:chrome://version/

下载chromedriver.exe链接:http://chromedriver.storage.googleapis.com/index.html

作者:iceblue iceblue
链接:https://www.zhihu.com/question/49568096/answer/119324584
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
上一篇:react入门-----(jsx语法,在react中获取真实的dom节点)


下一篇:error: 40 - 无法打开到 SQL Server 的连接