標籤:

python selenium模塊使用出錯,這個怎麼改?

錯誤代碼如下:

File "/usr/local/lib/python2.7/dist-packages/selenium-3.0.0b2-py2.7.egg/selenium/webdriver/firefox/webdriver.py", line 65, in __init__

self.service.start()

File "/usr/local/lib/python2.7/dist-packages/selenium-3.0.0b2-py2.7.egg/selenium/webdriver/common/service.py", line 71, in start

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

selenium.common.exceptions.WebDriverException: Message: geckodriver executable needs to be in PATH.

Exception AttributeError: "Service object has no attribute process" in &&> ignored

是不是沒有安裝什麼啊?


1. selenium 3.x開始,webdriver/firefox/webdriver.py的__init__中,executable_path="geckodriver";而2.x是executable_path="wires"

2. firefox 47以上版本,需要下載第三方driver,即geckodriver;在http://docs.seleniumhq.org/download/的Third Party Drivers, Bindings, and Plugins下面找到Mozilla GeckoDriver,下載到任意電腦任意目錄,解壓後將該路徑加入到PC的path(針對windows)即可。


ubuntu16.04環境下 解決方法:

下載 geckodriverckod 地址: mozilla/geckodriver

解壓後將geckodriverckod 存放至 /usr/local/bin/ 路徑下即可

sudo mv ~/Downloads/geckodriver /usr/local/bin/


嗯 配置一上午,各種百度,要爆炸的時候配置好了

1.瀏覽器環境變數添加到path

2.將瀏覽器相應的驅動.exe複製到瀏覽器目錄

3.這條就是讓我傻逼似的配置一上午的罪魁禍首:將驅動.exe複製到python目錄!!!!

啊啊啊啊啊啊 我一上午的時間 快抓狂了!!我得出去冷靜一下~恩恩


綜合大家的方案,按照如下步驟已解決,多謝~

1、下載geckodriver.exe:

下載地址:https://github.com/mozilla/geckodriver/releases

請根據系統版本選擇下載;(如Windows 64位系統)

2、下載解壓後將getckodriver.exe複製到Firefox的安裝目錄下,如

(C:Program FilesMozilla Firefox),並在環境變數Path中添加路徑:

C:Program FilesMozilla Firefox重啟cmd或IDLE再次運行代碼即可


我解決了!!!好開心!!這是我的代碼!MAC可用

from selenium import webdriver

import time

dr = webdriver.Firefox(executable_path = /Users/jinwenxin/desktop/pythonPractice/geckodriver)

time.sleep(5)

print Browser will close.

dr.quit()

print Browser is close

教大家一個方法,我用了在python下執行了help(webdriver.Firefox) 回車,這樣就知道了傳什麼參數。


如果加入PATH無效的話可以考慮如下解決方法:

  • 要麼在代碼中直接指定使用的geckodriver文件位置(注意是位置,不是所在文件夾,需要包括其文件本身),如下,

    driver = webdriver.Firefox(executable_path = /Users/frank/code/geckodriver)

  • 要麼直接將geckodriver文件放入你所需要執行的Python腳本的所在處,如mac的/usr/bin目錄下(這也是mac系統自帶的Python腳本地址所在)。


上面方法試過了都沒成

應該是driver = webdriver.Chrome()這句出問題了

寫成

driver = webdriver.Chrome("C:Program Files (x86)GoogleChromeApplicationchromedriver.exe")

就能用了

參考Error message: amp;quot;amp;#x27;chromedriveramp;#x27; executable needs to be available in the pathamp;quot;

---------------------------------------------------

其實在環境變數設置完PATH重啟就行了

整了一晚上這東西

剛入門python感覺我就是個傻逼


Releases · mozilla/geckodriver · GitHub,從這個地址下載相應系統的geckodriver,解壓出來,放在系統PATH路徑下就可以了

Selenium WebDriver 3.0.0-beta2 and JUnit and GeckoDriver v 0.10.0


Mac下可以執行:

brew install geckodriver


selenium3已發布,firefox需要驅動。selenium2不需要,裝回selenium2就可以了。


Firefox 解決方案

  1. 打開 mozilla/geckodriver 並選擇 release 下載
  2. 下載之後解壓縮到 Firefox安裝目錄 下
  3. 添加 Firefox安裝目錄 到 系統變數Path
  4. 重新打開命令行
  5. Done


我的經驗,谷歌裝在哪裡都無所謂,找到谷歌相對應版本號的chromedriver然後將這個.exe文件放在python安裝目錄下就行了。調用方法為:

selenium之 chromedriver與chrome版本映射表(更新至v2.34)blog.csdn.net


1python 目錄下要有瀏覽器驅動

2 設置Firefox環境變數

親測有效


參考資源:Selenim 3.0 + FireFox 啟動報錯:geckodriver executabl needs to be in PATH

Path: Releases · mozilla/geckodriver · GitHub

下載後,將geckodriver.exe複製到C:Program Files (x86)mozilla firefox目錄下;

並在環境變數Path中添加路徑:C:Program Files (x86)mozilla firefox;

重啟cmd,再次運行即可;


看了回答,感覺不太對,來補充一下

不是你chromedriver放在python安裝目錄下才好使的,是因為你python安裝目錄已經是在環境變數下配置了,所以chromedriver放在python安裝目錄之後,不用重新配置環境變數

如果你在其他文件夾配置了chromedriver ,仍然好使,但是要注意,環境變數的安裝目錄不要有空格


寫一下mac怎麼解決吧

1.看自己firefox的版本,下載對應的geckodriver

https://github.com/mozilla/geckodriver/releases

2.terminal中輸入echo$PATH

找到-bash: echo/Library/Frameworks/Python.framework/Versions/3.6/bin

3.將geckodriver添加到該路徑即可


如果是firefox瀏覽器,將geckodriver.exe所在的文件夾加入系統path就可以了吧,我是放在firefox安裝目錄下面的,沒有再複製一份到python目錄,重啟pycharm就不報錯了


我在mac上面遇到這個問題,我的解決方法如下:

最終要讓如下代碼跑起來

from selenium import webdriver

from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

binary = FirefoxBinary(/Applications/Firefox.app/Contents/MacOS/firefox-bin)

browser = webdriver.Firefox(firefox_binary=binary)

browser.get(http://localhost:8000)

1.安裝火狐

2.從mozilla/geckodriver下載geckodriver-v0.13.0-macos.tar.gz

3.解壓縮,把解壓縮後的文件放到/usr/local/bin裡面

4.現在代碼可以跑起來了


selenium.common.exceptions.WebDriverException: Message: geckodriver executable needs to be in PATH 這個問題的插件 http://pan.baidu.com/s/1o8pWqs6


Traceback (most recent call last):

File "C:UserslijingDesktoppython33.py", line 3, in &

driver = webdriver.Firefox()

File "C:pythonlibsite-packagesseleniumwebdriverfirefoxwebdriver.py", line 145, in __init__

keep_alive=True)

File "C:pythonlibsite-packagesseleniumwebdriver
emotewebdriver.py", line 92, in __init__

self.start_session(desired_capabilities, browser_profile)

File "C:pythonlibsite-packagesseleniumwebdriver
emotewebdriver.py", line 179, in start_session

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

File "C:pythonlibsite-packagesseleniumwebdriver
emotewebdriver.py", line 236, in execute

self.error_handler.check_response(response)

File "C:pythonlibsite-packagesseleniumwebdriver
emoteerrorhandler.py", line 192, in check_response

raise exception_class(message, screen, stacktrace)

selenium.common.exceptions.WebDriverException: Message: Missing marionetteProtocol field in handshake

請問下這是怎麼回事,瀏覽器能打開,網址不能打開


我也遇到了怎麼解決啊??哪位大神回復啊


我也遇到這個問題了 不知道怎麼解決 請問樓主 解決了嗎


推薦閱讀:

P 站非會員查看人氣作品
突破漢字點選驗證碼,實現熊貓TV自動領竹子

TAG:Python |