python3.6.1+selenium3.0环境安装问题及解决方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3.6.1+selenium3.0环境安装问题及解决方法相关的知识,希望对你有一定的参考价值。

脚本:(打开火狐浏览器,进入百度网页,搜索selenium)

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();

执行脚本报错1:

Traceback (most recent call last):
  File "D:\2017\programming language\python\installPath\lib\site-packages\selenium\webdriver\common\service.py", line 74, in start
    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: [WinError 2] 系统找不到指定的文件。

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 <module>
    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, in start
    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 <module>
    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, in start_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, in execute
    self.error_handler.check_response(response)
  File "D:\2017\programming language\python\installPath\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 194, in check_response
    raise exception_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;

运行脚本,可以正常执行。

 

以上是关于python3.6.1+selenium3.0环境安装问题及解决方法的主要内容,如果未能解决你的问题,请参考以下文章

Selenium3.0 + Java8环境配置——入门

python3.6.1环境配置出现Requirement already up-to-date: pip in c:python36libsite-packages决解方案

Linux安装python3.6.1

centos6.4下安装python3.6.1

Selenium2+python自动化2-pip降级selenium3.0

Selenium2+python自动化2-pip降级selenium3.0