你们都知道,selenium2对火狐浏览器兼容性比较好,和谷歌和IE相比,好处是无需安装相应的driver.exe来支持启动浏览器,可是缺点是最高支持火狐47版本。web
如今selenium3出来了,是否是支持高版本的火狐浏览器了呢,答案是确定的并且火狐浏览器必须是48或者更高版本,还须要geckodriver来支持。把geckodriver放在path路径下便可。浏览器
代码以下:session
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")
个别电脑使用以上代码启动可能报如下错误测试
解决方法:指定浏览器的路径,具体要看本身浏览器的安装路径spa
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鼠标操做类执行双击、移动鼠标到元素等事件都报错:firefox
Message: POST /session/7e857f95-4522-4898-abce-384e4ec00ca2/actions did not match a known command3d
缘由这是Mozilla/geckodriver的一个bug,因为geckodriver开发是2016年中旬的,因此只能这对firefox47或者更老的版本使用,若是你要使用selenuym3+firefox,请使用较老版本的firefox。经测试selenium3+Chrome58使用正常,及时如今geckodriver有更新版本,解决了以上的鼠标操做事件问题,仍是出现了其余问题,如设置浏览器最大化等等。code