• 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的博客,详细介绍了驱动和浏览器版本的支持情况,可供参考。

     
  • 相关阅读:
    图灵访谈之三十二:我的精神家园——陈皓专访
    对程序员职业的一些建议
    小波学习之一(单层一维离散小波变换DWT的Mallat算法C++和MATLAB实现)
    你是码农涅,还是创造者涅(内容是转载的,标题是我写的)
    小波学习之三(多孔算法与MATLAB swt剖析)—2013.5.27有更新
    【小波变换】STL版 一维离散小波变换(DWT)库,完全按matlab的wavelet toolbox 的API实现的
    从钱龙数据中读取股票权息信息导入到数据库
    从钱龙数据中读取股票交易数据(日线)导入到数据库
    从钱龙数据中读取股票代码信息导入到数据库
    汉典速查: 一个简易的国学阅读工具
  • 原文地址:https://www.cnblogs.com/yhyblog/p/6952358.html
Copyright © 2020-2023  润新知