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 webdriverimport timedr = 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 解決方案
- 打開 mozilla/geckodriver 並選擇 release 下載
- 下載之後解壓縮到 Firefox安裝目錄 下
- 添加 Firefox安裝目錄 到 系統變數Path
- 重新打開命令行
- Done
我的經驗,谷歌裝在哪裡都無所謂,找到谷歌相對應版本號的chromedriver然後將這個.exe文件放在python安裝目錄下就行了。調用方法為:
selenium之 chromedriver與chrome版本映射表(更新至v2.34)blog.csdn.net1python 目錄下要有瀏覽器驅動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 webdriverfrom selenium.webdriver.firefox.firefox_binary import FirefoxBinarybinary = 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.gz3.解壓縮,把解壓縮後的文件放到/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 &
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 |