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;

運行腳本,可以正常執行。

 
腳本:(打開谷歌瀏覽器,進入百度網頁,搜索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:\2017\programming language\python\installPath\Scripts\baidu.py", line 4, in <module>
    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, 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: unknown error: unrecognized Blink revision: fcbc16eadeff40b48fbd6b4694fb8487aededbc2 (Driver info: chromedriver=2.10.267521,platform=Windows NT 6.1 SP1 x86)

解決方法: chromedriver與chrome版本不匹配,安裝與當前chrome瀏覽器版本匹配的驅動。

下圖是轉載hui_yong的博客,詳細介紹了驅動和瀏覽器版本的支持情況,可供參考。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM