脚本:(打开火狐浏览器,进入百度网页,搜索selenium)
from selenium importwebdriver
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();
执行脚本报错1:
Traceback (most recent call last):
File"D:\2017\programming language\python\installPath\lib\site-packages\selenium\webdriver\common\service.py", line 74, instart
stdout=self.log_file, stderr=self.log_file)
File"D:\2017\programming language\python\installPath\lib\subprocess.py", line 707, in __init__restore_signals, start_new_session)
File"D:\2017\programming language\python\installPath\lib\subprocess.py", line 990, in_execute_child
startupinfo)
FileNotFoundError: [WinError2] 系统找不到指定的文件。
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File"D:\2017\programming language\python\installPath\Scripts\baidu.py", line 3, in browser=webdriver.Firefox();
File"D:\2017\programming language\python\installPath\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 142, in __init__self.service.start()
File"D:\2017\programming language\python\installPath\lib\site-packages\selenium\webdriver\common\service.py", line 81, instart
os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message:'geckodriver' executable needs to be in PATH.
这里提到geckodriver驱动,selenium3.x中,firefox浏览器驱动独立,需要单独安装;
解决方法:下载geckodriver驱动,将其放入python安装路径中,确保path中已添加该路径;
再次执行脚本,报错2:
Traceback (most recent call last):
File"D:\2017\programming language\python\installPath\Scripts\baidu.py", line 3, in browser=webdriver.Firefox();
File"D:\2017\programming language\python\installPath\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 152, in __init__keep_alive=True)
File"D:\2017\programming language\python\installPath\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 98, in __init__self.start_session(desired_capabilities, browser_profile)
File"D:\2017\programming language\python\installPath\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 188, instart_session
response=self.execute(Command.NEW_SESSION, parameters)
File"D:\2017\programming language\python\installPath\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 256, inexecute
self.error_handler.check_response(response)
File"D:\2017\programming language\python\installPath\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 194, incheck_responseraiseexception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: Unable to find a matching set of capabilities
解决方法:
1. 检查本机java版本,selenium3.x只支持java8版本以上,这里符合要求;
2. geckodriver版本是v0.16.1 ,firefox浏览器版本是45,卸载firefox,安装最新版本的firefox版本53;
运行脚本,可以正常执行。
脚本:(打开谷歌浏览器,进入百度网页,搜索selenium)
from selenium importwebdriver
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();
脚本执行报错:
Traceback (most recent call last):
File"D:\2017\programming language\python\installPath\Scripts\baidu.py", line 4, in browser=webdriver.Chrome();
File"D:\2017\programming language\python\installPath\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 69, in __init__desired_capabilities=desired_capabilities)
File"D:\2017\programming language\python\installPath\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 98, in __init__self.start_session(desired_capabilities, browser_profile)
File"D:\2017\programming language\python\installPath\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 188, instart_session
response=self.execute(Command.NEW_SESSION, parameters)
File"D:\2017\programming language\python\installPath\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 256, inexecute
self.error_handler.check_response(response)
File"D:\2017\programming language\python\installPath\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 194, incheck_responseraiseexception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: unrecognized Blink revision: fcbc16eadeff40b48fbd6b4694fb8487aededbc2
(Driver info: chromedriver=2.10.267521,platform=Windows NT 6.1 SP1 x86)
解决方法: chromedriver与chrome版本不匹配,安装与当前chrome浏览器版本匹配的驱动。
下图是转载hui_yong的博客,详细介绍了驱动和浏览器版本的支持情况,可供参考。