python2.7 + selenium3.4.3浏览器的选择
大家都知道,selenium2对火狐浏览器兼容性比较好,和谷歌和IE相比,好处是无需安装相应的driver.exe来支持启动浏览器,但是缺点是最高支持火狐47版本。
现在selenium3出来了,是不是支持高版本的火狐浏览器了呢,答案是肯定的而且火狐浏览器必须是48或者更高版本,还需要geckodriver来支持。把geckodriver放在path路径下即可。
代码如下:
1 #coding=utf-8 2 from selenium import webdriver 3 from time import sleep 4 from selenium.webdriver.common.action_chains import ActionChains 5 browser = webdriver.Firefox() 6 browser.get("https://www.baidu.com")
个别电脑使用以上代码启动可能报以下错误
解决方法:指定浏览器的路径,具体要看自己浏览器的安装路径
1 #coding=utf-8 2 from selenium import webdriver 3 from selenium.webdriver.firefox.firefox_binary import FirefoxBinary 4 binary = FirefoxBinary(r'C:\Program Files (x86)\Mozilla Firefox\firefox.exe') 5 browser = webdriver.Firefox(firefox_binary=binary) 6 browser.get("https://www.baidu.com")
但是导入ActionChains鼠标操作类执行双击、移动鼠标到元素等事件都报错:
Message: POST /session/7e857f95-4522-4898-abce-384e4ec00ca2/actions did not match a known command
原因这是Mozilla/geckodriver的一个bug,由于geckodriver开发是2016年中旬的,所以只能这对firefox47或者更老的版本使用,如果你要使用selenuym3+firefox,请使用较老版本的firefox。经测试selenium3+Chrome58使用正常,及时现在geckodriver有更新版本,解决了以上的鼠标操作事件问题,还是出现了其他问题,如设置浏览器最大化等等。
零基础自动化测试群:79887633
软件测试学习交流群:260582237