python-selenium-firefox環境搭建時常遇到的小問題


 以下問題很多人都經常遇到,而且很多都能百度到解決方法,此處是為了自己方便,在使用之后確定可用的結果做了記錄

報錯一:

 

 

Traceback (most recent call last):

  File "D:/Exercise/baidu.py", line 5, in <module>

    browser =webdriver.Firefox()

  File "D:\Python27\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 140, in __init__

    self.service.start()

  File "D:\Python27\lib\site-packages\selenium\webdriver\common\service.py", line 81, in start

    os.path.basename(self.path), self.start_error_message)

WebDriverException: Message: 'geckodriver' executable needs to be in PATH.

解決:

1)此處需要安裝Firefox geckodriver

  • 下載地址:https://github.com/mozilla/geckodriver/releases
  • 解壓縮:該軟件無需安裝,解壓縮即可,比如解壓縮到路徑: D:/browser_drivers/
  • 設置環境變量:需將上一步的解壓縮路徑添加的Windows環境變量中

2)添加Firefox可執行程序到系統環境變量

 

 

 報錯二:

 

 

解決:火狐版本不兼容(不一定是高了還是低了,我目前使用的45版本)

 

報錯三:

 

火狐版本問題

 

報錯四:

 

用了方法1之后因為出現問題三然后卸載,默認安裝路徑重裝了火狐47、python2.7.9和selenium等等,結果出現問題四

方法1:這里如果你的火狐瀏覽器安裝不是默認路徑,需要修改Python的兩個文件配置:

配置文件地址: D:\Programs\Python\Python35-32\Lib\site-packages\selenium\webdriver\firefox的

①    webdriver.py文件“def__init__(self,firefox_profile=None,firefox_binary=None”,修改為

def_init_(self,firefox_profile=None,firefox_binary=FirefoxBinary(""C:/Program Files (x86)/Mozilla Firefox/firefox.exe"")

②    Firefox_binary.py文件

“def __init__(self, firefox_path=None, log_file=None):”修改為

def_init_(self,firefox_path=""C:/Program Files (x86)/Mozilla Firefox/firefox.exe"",log_file=None);

 

方法2:執行文件中browser = webdriver.Firefox(executable_path="C:\Python27\geckodriver.exe")

 

 

報錯五:

  

Traceback (most recent call last):

  File "D:\Exercise\baidu.py", line 5, in <module>

    browser =webdriver.Ie()

  File "D:\Python27\lib\site-packages\selenium\webdriver\ie\webdriver.py", line 57, in __init__

    desired_capabilities=capabilities)

  File "D:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 92, in __init__

    self.start_session(desired_capabilities, browser_profile)

  File "D:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 179, in start_session

    response = self.execute(Command.NEW_SESSION, capabilities)

  File "D:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 236, in execute

    self.error_handler.check_response(response)

  File "D:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 192, in check_response

    raise exception_class(message, screen, stacktrace)

WebDriverException: Message: Unexpected error launching Internet Explorer. Protected Mode settings are not the same for all zones. Enable Protected Mode must be set to the same value (enabled or disabled) for all zones.

 

解決:

 

把Internet選項-安全里的保護模式都去掉或者都選上

 

如果是公司內網使用代理上網,RF無法識別IE的配置需要使用proxy.pac腳本實現代理上網

 

配置方法 IE》工具》Internet選項》連接》局域網設置

 

勾選使用自動配置腳本 file://c:/proxy.pac ------腳本存放路徑 注意斜杠


免責聲明!

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



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