zoukankan      html  css  js  c++  java
  • 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:2017programming languagepythoninstallPathlibsite-packagesseleniumwebdrivercommonservice.py", line 74, in start
        stdout=self.log_file, stderr=self.log_file)
      File "D:2017programming languagepythoninstallPathlibsubprocess.py", line 707, in __init__
        restore_signals, start_new_session)
      File "D:2017programming languagepythoninstallPathlibsubprocess.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:2017programming languagepythoninstallPathScriptsaidu.py", line 3, in <module>
        browser = webdriver.Firefox();
      File "D:2017programming languagepythoninstallPathlibsite-packagesseleniumwebdriverfirefoxwebdriver.py", line 142, in __init__
        self.service.start()
      File "D:2017programming languagepythoninstallPathlibsite-packagesseleniumwebdrivercommonservice.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:2017programming languagepythoninstallPathScriptsaidu.py", line 3, in <module>
        browser = webdriver.Firefox();
      File "D:2017programming languagepythoninstallPathlibsite-packagesseleniumwebdriverfirefoxwebdriver.py", line 152, in __init__
        keep_alive=True)
      File "D:2017programming languagepythoninstallPathlibsite-packagesseleniumwebdriver
    emotewebdriver.py", line 98, in __init__
        self.start_session(desired_capabilities, browser_profile)
      File "D:2017programming languagepythoninstallPathlibsite-packagesseleniumwebdriver
    emotewebdriver.py", line 188, in start_session
        response = self.execute(Command.NEW_SESSION, parameters)
      File "D:2017programming languagepythoninstallPathlibsite-packagesseleniumwebdriver
    emotewebdriver.py", line 256, in execute
        self.error_handler.check_response(response)
      File "D:2017programming languagepythoninstallPathlibsite-packagesseleniumwebdriver
    emoteerrorhandler.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;

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

     
    脚本:(打开谷歌浏览器,进入百度网页,搜索selenium)
    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();

    脚本执行报错:

    Traceback (most recent call last):
      File "D:2017programming languagepythoninstallPathScriptsaidu.py", line 4, in <module>
        browser = webdriver.Chrome();
      File "D:2017programming languagepythoninstallPathlibsite-packagesseleniumwebdriverchromewebdriver.py", line 69, in __init__
        desired_capabilities=desired_capabilities)
      File "D:2017programming languagepythoninstallPathlibsite-packagesseleniumwebdriver
    emotewebdriver.py", line 98, in __init__
        self.start_session(desired_capabilities, browser_profile)
      File "D:2017programming languagepythoninstallPathlibsite-packagesseleniumwebdriver
    emotewebdriver.py", line 188, in start_session
        response = self.execute(Command.NEW_SESSION, parameters)
      File "D:2017programming languagepythoninstallPathlibsite-packagesseleniumwebdriver
    emotewebdriver.py", line 256, in execute
        self.error_handler.check_response(response)
      File "D:2017programming languagepythoninstallPathlibsite-packagesseleniumwebdriver
    emoteerrorhandler.py", line 194, in check_response
        raise exception_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的博客,详细介绍了驱动和浏览器版本的支持情况,可供参考。

     
  • 相关阅读:
    什么是ORM
    ORM优缺点
    Azure 中快速搭建 FTPS 服务
    连接到 Azure 上的 SQL Server 虚拟机(经典部署)
    在 Azure 虚拟机中配置 Always On 可用性组(经典)
    SQL Server 2014 虚拟机的自动备份 (Resource Manager)
    Azure 虚拟机上的 SQL Server 常见问题
    排查在 Azure 中新建 Windows 虚拟机时遇到的经典部署问题
    上传通用化 VHD 并使用它在 Azure 中创建新 VM
    排查在 Azure 中新建 Windows VM 时遇到的部署问题
  • 原文地址:https://www.cnblogs.com/yhyblog/p/6952358.html
Copyright © 2011-2022 走看看