Selenium sử dụng Python - tệp thực thi Geckodriver cần phải ở trong PATH

479
tadm123 2016-10-24 11:39.

Tôi mới làm quen với lập trình và bắt đầu với Pythonkhoảng 2 tháng trước và tôi đang xem lại phần Automate the Boring Stuff bằng văn bản Python của Sweigart . Tôi đang sử dụng IDLE và đã cài đặt mô-đun selen và trình duyệt Firefox. Bất cứ khi nào tôi cố gắng chạy chức năng webdriver, tôi nhận được điều này:

from selenium import webdriver
browser = webdriver.Firefox()

Ngoại lệ :-

Exception ignored in: <bound method Service.__del__ of <selenium.webdriver.firefox.service.Service object at 0x00000249C0DA1080>>
Traceback (most recent call last):
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 163, in __del__
    self.stop()
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 135, in stop
    if self.process is None:
AttributeError: 'Service' object has no attribute 'process'
Exception ignored in: <bound method Service.__del__ of <selenium.webdriver.firefox.service.Service object at 0x00000249C0E08128>>
Traceback (most recent call last):
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 163, in __del__
    self.stop()
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 135, in stop
    if self.process is None:
AttributeError: 'Service' object has no attribute 'process'
Traceback (most recent call last):
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 64, in start
    stdout=self.log_file, stderr=self.log_file)
  File "C:\Python\Python35\lib\subprocess.py", line 947, in __init__
    restore_signals, start_new_session)
  File "C:\Python\Python35\lib\subprocess.py", line 1224, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    browser = webdriver.Firefox()
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 135, in __init__
    self.service.start()
  File "C:\Python\Python35\lib\site-packages\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. 

Tôi nghĩ rằng tôi cần phải thiết lập con đường cho geckodrivernhưng không biết làm thế nào, vì vậy bất cứ ai có thể cho tôi biết tôi sẽ làm điều này như thế nào?

30 answers

388
Saurabh Gaur 2016-10-24 13:16.

selenium.common.exceptions.WebDriverException: Thông báo: tệp thực thi 'geckodriver' cần phải ở trong PATH.

Trước hết, bạn sẽ cần tải xuống geckodriver thực thi mới nhất từ ​​đây để chạy Firefox mới nhất bằng Selenium

Trên thực tế, các ràng buộc máy khách Selenium cố gắng xác định geckodrivertệp thực thi từ hệ thống PATH. Bạn sẽ cần thêm thư mục chứa tệp thực thi vào đường dẫn hệ thống.

  • Trên các hệ thống Unix, bạn có thể thực hiện như sau để thêm nó vào đường dẫn tìm kiếm của hệ thống, nếu bạn đang sử dụng shell tương thích với Bash:

      export PATH=$PATH:/path/to/directory/of/executable/downloaded/in/previous/step
    
  • Trên Windows, bạn sẽ cần cập nhật biến hệ thống Path để thêm đường dẫn thư mục đầy đủ vào geckodriver thực thi theo cách thủ công hoặc dòng lệnh ** (đừng quên khởi động lại hệ thống của bạn sau khi thêm geckodriver thực thi vào hệ thống PATH để có hiệu lực) **. Nguyên tắc cũng giống như trên Unix.

Bây giờ bạn có thể chạy mã của mình giống như bạn đang làm như bên dưới: -

from selenium import webdriver

browser = webdriver.Firefox()

selenium.common.exceptions.WebDriverException: Thông báo: Vị trí nhị phân của trình duyệt mong đợi, nhưng không thể tìm thấy tệp nhị phân ở vị trí mặc định, không cung cấp khả năng 'moz: firefoxOptions.binary' và không có cờ nhị phân nào được đặt trên dòng lệnh

Ngoại lệ nói rõ rằng bạn đã cài đặt Firefox một số vị trí khác trong khi Selenium đang cố gắng tìm Firefox và khởi chạy từ vị trí mặc định, nhưng không thể tìm thấy nó. Bạn cần cung cấp vị trí nhị phân đã cài đặt Firefox một cách rõ ràng để khởi chạy Firefox như sau: -

from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

binary = FirefoxBinary('path/to/installed firefox binary')
browser = webdriver.Firefox(firefox_binary=binary)

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

Đối với windonws: tải xuống tệp từ Github sau đó giải nén và dán nó vào tệp python, nó sẽ hoạt động với tôi.

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

đối với tôi đường dẫn đường dẫn của tôi là: C: \ Users \ MYUSERNAME \ AppData \ Local \ Programs \ Python \ Python39

179
Nesa 2017-02-09 09:45.

Điều này đã giải quyết nó cho tôi.

from selenium import webdriver
driver = webdriver.Firefox(executable_path=r'your\path\geckodriver.exe')
driver.get('http://inventwithpython.com')
129
Andrea Perdicchia 2016-12-03 02:09.

Các bước này đã giải quyết nó cho tôi trên Ubuntu và Firefox 50.

  1. Tải xuống geckodriver

  2. Sao chép geckodriver vào thư mục /usr/local/bin

Bạn không cần thêm:

firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
firefox_capabilities['binary'] = '/usr/bin/firefox'
browser = webdriver.Firefox(capabilities=firefox_capabilities)
35
Anthon 2016-12-30 22:23.

Câu trả lời của @saurabh giải quyết được vấn đề, nhưng nó không giải thích tại sao Tự động hóa nội dung nhàm chán với Python không bao gồm các bước đó.

Điều này là do cuốn sách dựa trên Selenium 2.x và trình điều khiển Firefox cho loạt bài đó không cần trình điều khiển Gecko. Giao diện Gecko để điều khiển trình duyệt không có sẵn khi Selenium đang được phát triển.

Các phiên bản mới nhất trong loạt Selenium 2.x là 2.53.6 (xem ví dụ [những câu trả lời] [2], cho một cái nhìn dễ dàng hơn trong các phiên bản).

[Trang phiên bản 2.53.6] [3] hoàn toàn không đề cập đến Gecko. Nhưng kể từ phiên bản 3.0.2, tài liệu [nêu rõ] [4] bạn cần cài đặt trình điều khiển Gecko.

Nếu sau khi nâng cấp (hoặc cài đặt trên hệ thống mới), phần mềm hoạt động tốt trước đây (hoặc trên hệ thống cũ của bạn) không hoạt động nữa và bạn đang vội, hãy ghim phiên bản Selenium vào virtualenv của bạn bằng cách

pip install selenium==2.53.6

nhưng tất nhiên giải pháp lâu dài để phát triển là thiết lập một virtualenv mới với phiên bản selen mới nhất, cài đặt trình điều khiển Gecko và kiểm tra xem mọi thứ vẫn hoạt động như mong đợi.

Nhưng phiên bản chính có thể giới thiệu các thay đổi API khác không có trong sách của bạn, vì vậy bạn có thể muốn gắn bó với Selenium cũ hơn, cho đến khi bạn đủ tự tin rằng bạn có thể tự mình khắc phục bất kỳ sự khác biệt nào giữa API Selenium 2 và Selenium 3.

[2]: https://stackoverflow.com/a/40746017/1307905 ) [3]: https://pypi.python.org/pypi/selenium/2.53.6 [4]: https://pypi.python Trình điều khiển .org / pypi / selenium #

29
roskakori 2017-09-04 04:09.

Trên macOS với Homebrew đã được cài đặt, bạn chỉ cần chạy lệnh Terminal

$ brew install geckodriver

Vì homebrew đã mở rộng nên PATHkhông cần sửa đổi bất kỳ tập lệnh khởi động nào.

20
Ripon Al Wasim 2017-07-22 03:32.

Để thiết lập geckodriver cho Selenium Python:

Nó cần đặt đường dẫn geckodriver với FirefoxDriver như đoạn mã dưới đây:

self.driver = webdriver.Firefox(executable_path = 'D:\Selenium_RiponAlWasim\geckodriver-v0.18.0-win64\geckodriver.exe')

Tải xuống geckodriver cho hệ điều hành phù hợp của bạn (từ https://github.com/mozilla/geckodriver/releases ) → Giải nén nó trong một thư mục bạn chọn → Đặt đường dẫn chính xác như đã đề cập ở trên.

Tôi đang sử dụng Python 3.6.2 và Selenium WebDriver 3.4.3 trên Windows 10.

Một cách khác để thiết lập geckodriver:

i) Chỉ cần dán geckodriver.exe dưới / Python / Scripts / (trong trường hợp của tôi là thư mục C:\Python36\Scripts:)
ii) Bây giờ hãy viết mã đơn giản như sau:

self.driver = webdriver.Firefox()
20
Navarasu 2019-11-07 00:23.

Tôi thấy các cuộc thảo luận vẫn nói về cách cũ để thiết lập geckodriver bằng cách tải xuống tệp nhị phân và định cấu hình đường dẫn theo cách thủ công.

Điều này có thể được thực hiện tự động bằng trình quản lý máy chủ web

pip install webdriver-manager

Bây giờ đoạn mã trên trong câu hỏi sẽ hoạt động đơn giản với thay đổi bên dưới,

from selenium import webdriver
from webdriver_manager.firefox import GeckoDriverManager

driver = webdriver.Firefox(executable_path=GeckoDriverManager().install())
19
Rodolfo Alvarez 2018-06-27 00:12.

Nếu bạn đang sử dụng Anaconda , tất cả những gì bạn phải làm là kích hoạt môi trường ảo của mình và sau đó cài đặt geckodriver bằng lệnh sau :

    conda install -c conda-forge geckodriver
14
jmunsch 2019-06-14 06:22.

Ubuntu 18.04 + và phiên bản mới nhất của geckodriver

Điều này cũng sẽ hoạt động với các giống * nix khác.

export GV=v0.27.0
wget "https://github.com/mozilla/geckodriver/releases/download/$GV/geckodriver-$GV-linux64.tar.gz"
tar xvzf geckodriver-$GV-linux64.tar.gz
chmod +x geckodriver
sudo cp geckodriver /usr/local/bin/

Đối với Mac, hãy cập nhật lên:

geckodriver-$GV-macos.tar.gz
12
Jalles10 2017-10-23 13:16.

Cách dễ nhất cho Windows!

Tải xuống phiên bản mới nhất của geckodrivertừ đây . Thêm tệp geckodriver.exe vào thư mục Python (hoặc bất kỳ thư mục nào khác đã có trong đó PATH). Điều này sẽ giải quyết được vấn đề (nó đã được thử nghiệm trên Windows 10).

8
Umang Sardesai 2017-02-09 10:33.

Các bước dành cho Mac

Giải pháp đơn giản là tải xuống GeckoDriver và thêm nó vào PATH hệ thống của bạn. Bạn có thể sử dụng một trong hai cách tiếp cận:

Phương pháp ngắn

  1. Tải xuống và giải nén Geckodriver .

  2. Đề cập đến đường dẫn trong khi khởi tạo trình điều khiển:

     driver = webdriver.Firefox(executable_path='/your/path/to/geckodriver')
    

Phương pháp dài

  1. Tải xuống và giải nén Geckodriver .

  2. Mở ra .bash_profile. Nếu bạn chưa tạo được chưa, bạn có thể làm như vậy bằng cách sử dụng lệnh: touch ~/.bash_profile. Sau đó, mở nó bằng cách sử dụng:open ~/.bash_profile

  3. Xem xét tệp GeckoDriver có trong thư mục Tải xuống của bạn, bạn có thể thêm (các) dòng sau vào .bash_profiletệp:

     PATH="/Users/<your-name>/Downloads/geckodriver:$PATH"
     export PATH
    

Bằng cách này, bạn đang thêm đường dẫn đến GeckoDriver vào Hệ thống PATH của bạn. Điều này cho hệ thống biết vị trí của GeckoDriver khi thực thi các tập lệnh Selenium của bạn.

  1. Lưu .bash_profilevà buộc nó thực thi. Thao tác này sẽ tải các giá trị ngay lập tức mà không cần phải khởi động lại. Để làm điều này, bạn có thể chạy lệnh sau:

source ~/.bash_profile

  1. Đó là nó. Bạn đã hoàn thành ! Bạn có thể chạy tập lệnh Python ngay bây giờ.
8
Snidhi Sofpro 2018-04-16 21:14.

Một số đầu vào / làm rõ bổ sung cho người đọc trong tương lai của chủ đề này:

Những điều sau đây đủ làm độ phân giải cho Windows 7, Python 3.6 và Selenium 3.11:

Selenium sử dụng Python - tệp thực thi Geckodriver cần phải ở trong PATH cho một câu trả lời khác cho Unix cũng có thể áp dụng cho Windows; Có thể tránh được việc điều chỉnh biến môi trường PATH ở cấp Windows và khởi động lại hệ thống Windows.

(1) Tải xuống geckodriver (như được mô tả trong chủ đề này trước đó) và đặt geckdriver.exe (đã giải nén) tại X: \ Folder \ of \ your \ choice

(2) Mẫu mã Python:

import os;
os.environ["PATH"] += os.pathsep + r'X:\Folder\of\your\choice';

from selenium import webdriver;
browser = webdriver.Firefox();
browser.get('http://localhost:8000')
assert 'Django' in browser.title

Lưu ý: (1) Có thể mất khoảng 10 giây để đoạn mã trên mở trình duyệt Firefox cho URL được chỉ định. (2) Bảng điều khiển Python sẽ hiển thị lỗi sau nếu không có máy chủ nào đang chạy tại URL được chỉ định hoặc phân phát trang có tiêu đề chứa chuỗi 'Django': selenium.common.exceptions.WebDriverException: Thông báo: Đã đến trang lỗi: about : neterror? e = connectFailure & u = http% 3A // localhost% 3A8000 / & c = UTF-8 & f = regular & d = Firefox% 20can% E2% 80% 9

5
Sabrina 2020-09-04 03:55.

geckodriver không được cài đặt theo mặc định.

$ geckodriver

Command 'geckodriver' not found, but it can be installed with:

sudo apt install firefox-geckodriver

$

Lệnh sau không chỉ cài đặt nó mà còn đưa nó vào tệp thực thi PATH.

sudo apt install firefox-geckodriver

Vấn đề được giải quyết chỉ với một bước duy nhất. Tôi đã gặp chính xác lỗi giống như bạn và nó đã biến mất ngay sau khi tôi cài đặt nó. Hãy tiếp tục và thử.

$ which geckodriver
/usr/bin/geckodriver
$
$ geckodriver
1337    geckodriver    INFO    Listening on 127.0.0.1:4444
^C
4
Max Malysh 2020-02-01 09:18.

Cân nhắc cài đặt một Firefox được chứa trong vùng:

docker pull selenium/standalone-firefox
docker run --rm -d -p 5555:4444 --shm-size=2g selenium/standalone-firefox

Kết nối bằng webdriver.Remote:

driver = webdriver.Remote('http://localhost:5555/wd/hub', DesiredCapabilities.FIREFOX)
driver.set_window_size(1280, 1024)
driver.get('https://toolbox.googleapps.com/apps/browserinfo/')
driver.save_screenshot('info.png')
4
JustASteve 2016-12-20 11:38.

Thực sự khá buồn là không có cuốn sách nào được xuất bản trên Selenium / Python và hầu hết các bình luận về vấn đề này thông qua Google không giải thích rõ ràng logic vỗ nhẹ để thiết lập điều này trên Mac (mọi thứ đều là Windows !!!!). Tất cả các video trên YouTube đều nhận được ở "sau khi" bạn đã có thiết lập nhẹ nhàng (theo suy nghĩ của tôi, đó là một cách rẻ tiền!). Vì vậy, đối với những người dùng Mac tuyệt vời, hãy sử dụng phần sau để chỉnh sửa tệp đường dẫn Bash của bạn:

touch ~/.bash_profile; open ~/.bash_profile*

Sau đó, thêm một đường dẫn như thế này ...

# Setting PATH for geckodriver
PATH=“/usr/bin/geckodriver:${PATH}”
export PATH

# Setting PATH for Selenium Firefox
PATH=“~/Users/yourNamePATH/VEnvPythonInterpreter/lib/python2.7/site-packages/selenium/webdriver/firefox/:${PATH}”
export PATH

# Setting PATH for executable on Firefox driver
PATH=“/Users/yournamePATH/VEnvPythonInterpreter/lib/python2.7/site-packages/selenium/webdriver/common/service.py:${PATH}”
export PATH*

Điều này đã làm việc cho tôi. Mối quan tâm của tôi là khi nào cộng đồng Selenium Windows sẽ bắt đầu chơi trò chơi thực sự và đưa những người dùng Mac chúng tôi vào thành viên câu lạc bộ kiêu ngạo của họ.

4
Roochiedoor 2017-01-07 04:26.

Tôi đã thực sự phát hiện ra rằng bạn có thể sử dụng geckodriver mới nhất mà không cần đặt nó vào đường dẫn hệ thống. Hiện tại tôi đang sử dụng

https://github.com/mozilla/geckodriver/releases/download/v0.12.0/geckodriver-v0.12.0-win64.zip

Firefox 50.1.0

Python 3.5.2

Selenium 3.0.2

Windows 10

Tôi đang chạy VirtualEnv (mà tôi quản lý bằng PyCharm và tôi cho rằng nó sử dụng Pip để cài đặt mọi thứ).

Trong đoạn mã sau, tôi có thể sử dụng một đường dẫn cụ thể cho geckodriver bằng cách sử dụng tham số execute_path (tôi đã phát hiện ra điều này khi xem trong Lib \ site-package \ selenium \ webdriver \ firefox \ webdriver.py). Lưu ý rằng tôi nghi ngờ rằng thứ tự của các đối số tham số khi gọi webdriver là quan trọng, đó là lý do tại sao thực thi_path nằm cuối cùng trong mã của tôi (dòng thứ hai đến cuối cùng ở ngoài cùng bên phải).

Bạn cũng có thể nhận thấy rằng tôi sử dụng cấu hình Firefox tùy chỉnh để khắc phục sự cố sec_error_unknown_issuer mà bạn sẽ gặp phải nếu trang web bạn đang kiểm tra có chứng chỉ không đáng tin cậy. Xem Cách tắt cảnh báo kết nối không đáng tin cậy của Firefox bằng Selenium?

Sau khi điều tra, người ta phát hiện ra rằng trình điều khiển Marionette chưa hoàn thiện và vẫn đang được xử lý, và không có số lượng thiết lập các khả năng hoặc tùy chọn hồ sơ khác nhau để loại bỏ hoặc thiết lập chứng chỉ sẽ hoạt động. Vì vậy, nó chỉ dễ dàng hơn để sử dụng một hồ sơ tùy chỉnh.

Dù sao đi nữa, đây là mã về cách tôi làm cho geckodriver hoạt động mà không bị theo dõi:

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True

#you probably don't need the next 3 lines they don't seem to work anyway
firefox_capabilities['handleAlerts'] = True
firefox_capabilities['acceptSslCerts'] = True
firefox_capabilities['acceptInsecureCerts'] = True

# In the next line I'm using a specific Firefox profile because
# I wanted to get around the sec_error_unknown_issuer problems with the new Firefox and Marionette driver
# I create a Firefox profile where I had already made an exception for the site I'm testing
# see https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles#w_starting-the-profile-manager

ffProfilePath = 'D:\Work\PyTestFramework\FirefoxSeleniumProfile'
profile = webdriver.FirefoxProfile(profile_directory=ffProfilePath)
geckoPath = 'D:\Work\PyTestFramework\geckodriver.exe'
browser = webdriver.Firefox(firefox_profile=profile, capabilities=firefox_capabilities, executable_path=geckoPath)
browser.get('http://stackoverflow.com')
3
Edgar N 2017-07-15 02:33.

Tôi đang sử dụng Windows 10 và điều này phù hợp với tôi:

  1. Tải xuống geckodriver từ đây . Tải về phiên bản phù hợp với máy tính bạn đang sử dụng.
  2. Giải nén tệp bạn vừa tải xuống và cắt / sao chép tệp ".exe" trong đó
  3. Điều hướng đến C: {thư mục gốc python của bạn}. Của tôi là C: \ Python27. Dán tệp geckodriver.exe vào thư mục này.
  4. Khởi động lại môi trường phát triển của bạn.
  5. Thử chạy lại mã. Nó sẽ hoạt động ngay bây giờ.
2
Peter Graham 2017-04-20 05:21.

Selenium trả lời câu hỏi này trong tệp DESCRIPTION. đầu tiên của họ :

Trình điều khiển
=======

Selenium yêu cầu trình điều khiển để giao diện với trình duyệt đã chọn. Ví dụ: Firefox yêu cầu geckodriver <https://github.com/mozilla/geckodriver/releases>_, cần được cài đặt trước khi các ví dụ dưới đây có thể chạy. Đảm bảo rằng nó nằm trong của bạn PATH, ví dụ, đặt nó vào /usr/binhoặc /usr/local/bin.

Không tuân theo bước này sẽ gây ra lỗi `selenium.common.exceptions.WebDriverException: Thông báo: tệp thực thi 'geckodriver' cần phải ở trong PATH.

Về cơ bản, chỉ cần tải xuống geckodriver, giải nén nó và di chuyển tệp thực thi vào thư mục / usr / bin của bạn .

2
Ghanem 2019-03-20 08:02.

Đối với người dùng Windows

Sử dụng mã gốc như sau:

from selenium import webdriver
browser = webdriver.Firefox()
driver.get("https://www.google.com")

Sau đó tải xuống trình điều khiển từ: mozilla / geckodriver

Đặt nó vào một đường dẫn cố định (vĩnh viễn) ... Ví dụ, tôi đặt nó vào:

C: \ Python35

Sau đó đến các biến môi trường của hệ thống. Trong lưới "Biến hệ thống", hãy tìm biến Đường dẫn và thêm:

; C: \ Python35 \ geckodriver

geckodriver, không phải geckodriver.exe .

2
InLaw 2019-10-10 04:29.
from webdriverdownloader import GeckoDriverDownloader # vs ChromeDriverDownloader vs OperaChromiumDriverDownloader
gdd = GeckoDriverDownloader()
gdd.download_and_install()
#gdd.download_and_install("v0.19.0")

Điều này sẽ cung cấp cho bạn đường dẫn đến gekodriver.exe của bạn trên Windows.

from selenium import webdriver
driver = webdriver.Firefox(executable_path=r'C:\\Users\\username\\\bin\\geckodriver.exe')
driver.get('https://www.amazon.com/')
2
apet 2019-12-06 21:15.

Nếu bạn sử dụng môi trường ảo và Windows 10 (có thể giống với các hệ thống khác), bạn chỉ cần đặt geckodriver.exe vào thư mục sau trong thư mục môi trường ảo của mình:

... \ my_virtual_env_directory \ Scripts \ geckodriver.exe

2
Wolf 2020-07-16 12:37.

Ở đây có rất nhiều giải pháp và hầu hết chúng vẫn sử dụng cách thủ công bằng cách tải xuống gói thủ công.

Giải pháp dễ nhất thực sự là Selenium sử dụng Python - tệp thực thi Geckodriver cần phải ở trong PATH .

Đây là ví dụ; và nó khắc phục sự cố một cách nhanh chóng.

  1. Tải xuống và cài đặt gói với pip

    python -m pip cài đặt webdriver-manager

Thí dụ

[email protected]:~$ python -m pip install webdriver-manager
Collecting webdriver-manager
  Using cached https://files.pythonhosted.org/packages/9c/6c/b52517f34e907fef503cebe26c93ecdc590d0190b267d38a251a348431e8/webdriver_manager-3.2.1-py2.py3-none-any.whl
 ... output truncated ...
Installing collected packages: configparser, colorama, crayons, certifi, chardet, urllib3, idna, requests, webdriver-manager
Successfully installed certifi-2020.6.20 chardet-3.0.4 colorama-0.4.3 configparser-5.0.0 crayons-0.3.1 idna-2.10 requests-2.24.0 urllib3-1.25.9 webdriver-manager-3.2.1
[email protected]:~$
  1. Thực thi nó trong trình bao Python
from selenium import webdriver
from webdriver_manager.firefox import GeckoDriverManager

driver = webdriver.Firefox(executable_path=GeckoDriverManager().install())

Thí dụ

[email protected]:~$ python
Python 3.7.5 (default, Nov  7 2019, 10:50:52)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> from selenium import webdriver
>>> from webdriver_manager.firefox import GeckoDriverManager
>>>
>>> driver = webdriver.Firefox(executable_path=GeckoDriverManager().install())
[WDM] - There is no [linux64] geckodriver for browser  in cache
[WDM] - Getting latest mozilla release info for v0.26.0
[WDM] - Trying to download new driver from https://github.com/mozilla/geckodriver/releases/download/v0.26.0/geckodriver-v0.26.0-linux64.tar.gz
[WDM] - Driver has been saved in cache [/home/wolf/.wdm/drivers/geckodriver/linux64/v0.26.0]
>>>
  1. Trong trường hợp này, trình duyệt web là Firefox sẽ được mở.

  2. Vấn đề đã được giải quyết. Đó là nó!!!

  3. Lưu ý thêm: Nếu bạn nhìn vào nhật ký ở trên, geckodriverđã được tải xuống tự động từ https://github.com/mozilla/geckodriver/releases/download/v0.26.0/geckodriver-v0.26.0-linux64.tar.gzvà được lưu vào thư mục cục bộ tại/home/wolf/.wdm/drivers/geckodriver/linux64/v0.26.0

  4. Bạn cũng có thể sao chép tệp nhị phân này và đặt nó vào bất kỳ thư mục thực thi nào có thể lấy từ echo $PATHlệnh.

Ví dụ,

cp /home/$(whoami)/.wdm/drivers/geckodriver/linux64/v0.26.0/geckodriver /home/$(whoami)/.local/bin/

Sau đó, hãy thử mã mẫu trong https://pypi.org/project/selenium/

from selenium import webdriver

browser = webdriver.Firefox()
browser.get('http://seleniumhq.org/')
  1. Đó là nó.
1
Nathan Gisvold 2017-02-28 10:10.

Trên Raspberry Pi, tôi phải tạo từ trình điều khiển ARM và đặt trình điều khiển và đường dẫn đăng nhập:

sudo nano /usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py

def __init__(self, firefox_profile=None, firefox_binary=None,
             timeout=30, capabilities=None, proxy=None,
             executable_path="/PATH/gecko/geckodriver",                     
firefox_options=None,
             log_path="/PATH/geckodriver.log"):
1
Olesya M 2020-04-21 14:36.

Đối với tôi, chỉ cần cài đặt geckodrivertrong cùng một môi trường là đủ:

$ brew install geckodriver

Và mã không được thay đổi:

from selenium import webdriver
browser = webdriver.Firefox()
1
Tanmoy Bhowmick 2020-07-23 06:09.

Bạn có thể giải quyết vấn đề này bằng cách sử dụng một lệnh đơn giản nếu bạn đang sử dụng Linux

  1. Trước tiên, hãy tải xuống ( https://github.com/mozilla/geckodriver/releases ) và giải nén tệp ZIP

  2. Mở thư mục đã giải nén

  3. Mở thiết bị đầu cuối từ thư mục (nơi chứa geckodrivertệp sau khi giải nén)

  4. Bây giờ hãy chạy lệnh đơn giản này trên thiết bị đầu cuối của bạn để sao chép geckodriver vào đúng thư mục:

     sudo cp geckodriver /usr/local/bin
    
0
do01 2017-02-16 11:59.

Trên macOS v10.12.1 (Sierra) và Python 2.7.10, điều này phù hợp với tôi:

def download(url):
    firefox_capabilities = DesiredCapabilities.FIREFOX
    firefox_capabilities['marionette'] = True
    browser = webdriver.Firefox(capabilities=firefox_capabilities,
                                executable_path=r'/Users/Do01/Documents/crawler-env/geckodriver')
    browser.get(url)
    return browser.page_source
0
jackotonye 2017-08-18 05:56.

Truy cập Trình điều khiển Gecko và lấy URL cho trình điều khiển Gecko từ phần Tải xuống .

Sao chép kho lưu trữ này: https://github.com/jackton1/script_install.git

cd script_install

Chạy

./installer --gecko-driver https://github.com/mozilla/geckodriver/releases/download/v0.18.0/geckodriver-v0.25.0-linux64.tar.gz
0
Bhavya Ghai 2017-12-13 15:48.

Tôi đang sử dụng Windows 10 và Anaconda 2. Tôi đã thử đặt biến đường dẫn hệ thống, nhưng không thành công. Sau đó, tôi chỉ cần thêm tệp geckodriver.exe vào thư mục Anaconda 2 / Scripts và mọi thứ hiện hoạt động tốt.

Đối với tôi, con đường là:

C:\Users\Bhavya\Anaconda2\Scripts
0
Russ Thomas 2019-04-28 17:17.

Nếu bạn muốn thêm đường dẫn trình điều khiển trên Windows 10:

  1. Nhấp chuột phải vào biểu tượng "Máy tính này" và chọn "Thuộc tính"

  2. Nhấp vào “Cài đặt Hệ thống Nâng cao”

  3. Nhấp vào “Biến môi trường” ở cuối màn hình

  4. Trong phần “Biến người dùng” đánh dấu “Đường dẫn” và nhấp vào “Chỉnh sửa”

  5. Thêm đường dẫn vào các biến của bạn bằng cách nhấp vào “Mới” và nhập đường dẫn cho trình điều khiển bạn đang thêm và nhấn enter.

  6. Sau khi bạn nhập xong đường dẫn, hãy nhấp vào “OK”

  7. Tiếp tục nhấp vào “OK” cho đến khi bạn đã đóng tất cả các màn hình

0
Wen 2019-11-19 21:42.
  1. Đảm bảo bạn có đúng phiên bản trình điều khiển ( geckodriver), x86 hoặc 64.
  2. Đảm bảo bạn đang kiểm tra đúng môi trường. Ví dụ: công việc đang chạy trong vùng chứa Docker, trong khi môi trường được kiểm tra trên hệ điều hành máy chủ.

Related questions

MORE COOL STUFF

Cate Blanchett chia tay chồng sau 3 ngày bên nhau và vẫn kết hôn với anh ấy 25 năm sau

Cate Blanchett chia tay chồng sau 3 ngày bên nhau và vẫn kết hôn với anh ấy 25 năm sau

Cate Blanchett đã bất chấp những lời khuyên hẹn hò điển hình khi cô gặp chồng mình.

Tại sao Michael Sheen là một diễn viên phi lợi nhuận

Tại sao Michael Sheen là một diễn viên phi lợi nhuận

Michael Sheen là một diễn viên phi lợi nhuận nhưng chính xác thì điều đó có nghĩa là gì?

Hallmark Star Colin Egglesfield Các món ăn gây xúc động mạnh đối với người hâm mộ tại RomaDrama Live! [Loại trừ]

Hallmark Star Colin Egglesfield Các món ăn gây xúc động mạnh đối với người hâm mộ tại RomaDrama Live! [Loại trừ]

Ngôi sao của Hallmark Colin Egglesfield chia sẻ về những cuộc gặp gỡ với người hâm mộ ly kỳ tại RomaDrama Live! cộng với chương trình INSPIRE của anh ấy tại đại hội.

Tại sao bạn không thể phát trực tuyến 'chương trình truyền hình phía Bắc'

Tại sao bạn không thể phát trực tuyến 'chương trình truyền hình phía Bắc'

Bạn sẽ phải phủi sạch đầu đĩa Blu-ray hoặc DVD để xem tại sao Northern Exposure trở thành một trong những chương trình nổi tiếng nhất của thập niên 90.

Where in the World Are You? Take our GeoGuesser Quiz

Where in the World Are You? Take our GeoGuesser Quiz

The world is a huge place, yet some GeoGuessr players know locations in mere seconds. Are you one of GeoGuessr's gifted elite? Take our quiz to find out!

8 công dụng tuyệt vời của Baking Soda và Giấm

8 công dụng tuyệt vời của Baking Soda và Giấm

Bạn biết đấy, hai sản phẩm này là nguồn điện để làm sạch, riêng chúng. Nhưng cùng với nhau, chúng có một loạt công dụng hoàn toàn khác.

Hạn hán, biến đổi khí hậu đe dọa tương lai của thủy điện Hoa Kỳ

Hạn hán, biến đổi khí hậu đe dọa tương lai của thủy điện Hoa Kỳ

Thủy điện rất cần thiết cho lưới điện của Hoa Kỳ, nhưng nó chỉ tạo ra năng lượng khi có nước di chuyển. Bao nhiêu nhà máy thủy điện có thể gặp nguy hiểm khi các hồ và sông cạn kiệt?

Quyên góp tóc của bạn để giúp giữ nước sạch của chúng tôi

Quyên góp tóc của bạn để giúp giữ nước sạch của chúng tôi

Tóc tỉa từ các tiệm và các khoản quyên góp cá nhân có thể được tái sử dụng như những tấm thảm thấm dầu và giúp bảo vệ môi trường.

Các luật sư của Trump muốn vụ kiện Stormy Daniels được giải quyết trước mắt công chúng

Các luật sư của Trump muốn vụ kiện Stormy Daniels được giải quyết trước mắt công chúng

Ảnh: Getty Nếu có vẻ như câu chuyện Stormy Daniels-Donald Trump là một trò chơi bất tận giữa các luật sư (một số người trong số họ rất ngu ngốc), đó là bởi vì nó là. Vào thứ Hai, các luật sư đại diện cho luật sư của Trump, Michael Cohen và Trump đã thực hiện vở kịch mới nhất của họ: một đề nghị để vụ việc được quyết định bởi một trọng tài riêng.

Colin Trevorrow sẽ trở lại để chỉ đạo phần ba của phim thế giới kỷ Jura

Colin Trevorrow sẽ trở lại để chỉ đạo phần ba của phim thế giới kỷ Jura

Chris Pratt và Colin Trevorrow trên phim trường Jurassic World. Người đàn ông đầu tiên mạo hiểm vào Thế giới kỷ Jura sẽ trở lại đó cho phần cuối của bộ ba.

Bạn sẽ phân biệt chủng tộc như thế nào nếu người da đen thực sự có thể phân biệt chủng tộc?

Bạn sẽ phân biệt chủng tộc như thế nào nếu người da đen thực sự có thể phân biệt chủng tộc?

Một trong những điều thất vọng lớn nhất trong cuộc đời tôi - có lẽ thực sự là thất vọng lớn nhất - là người da đen ở Mỹ không có khả năng phân biệt chủng tộc. Chúng ta có thể cố gắng hết sức và ghét nhất có thể, nhưng do cách thức hoạt động của chủ nghĩa phân biệt chủng tộc, chúng ta sẽ không bao giờ có thể sử dụng tình trạng được săn đón là “phân biệt chủng tộc.

Bạn không cần phải xả những củ khoai tây nghiền này ngay lập tức

Bạn không cần phải xả những củ khoai tây nghiền này ngay lập tức

Một trong những thứ yêu thích của tôi để nấu trong Instant Pot (hoặc bất kỳ nồi áp suất nào) là các loại rau củ, nếu không sẽ mất nhiều thời gian hơn. Khoai tây chắc chắn thuộc loại này, đặc biệt là vì bạn có thể làm khoai tây nghiền hoàn toàn như kem hoàn toàn trong Nồi ăn liền mà không cần xả nước.

Nicky Hilton Forced to Borrow Paris' 'I Love Paris' Sweatshirt After 'Airline Loses All [My] Luggage'

Nicky Hilton Forced to Borrow Paris' 'I Love Paris' Sweatshirt After 'Airline Loses All [My] Luggage'

Nicky Hilton Rothschild's luggage got lost, but luckily she has an incredible closet to shop: Sister Paris Hilton's!

Kate Middleton dành một ngày bên bờ nước ở London, cùng với Jennifer Lopez, Julianne Hough và hơn thế nữa

Kate Middleton dành một ngày bên bờ nước ở London, cùng với Jennifer Lopez, Julianne Hough và hơn thế nữa

Kate Middleton dành một ngày bên bờ nước ở London, cùng với Jennifer Lopez, Julianne Hough và hơn thế nữa. Từ Hollywood đến New York và mọi nơi ở giữa, hãy xem các ngôi sao yêu thích của bạn đang làm gì!

17 tuổi bị đâm chết trong khi 4 người khác bị thương trong một cuộc tấn công bằng dao trên sông Wisconsin

17 tuổi bị đâm chết trong khi 4 người khác bị thương trong một cuộc tấn công bằng dao trên sông Wisconsin

Các nhà điều tra đang xem xét liệu nhóm và nghi phạm có biết nhau trước vụ tấn công hay không

Thanh thiếu niên, Gia đình Florida Hội đồng quản trị trường học về Luật 'Không nói đồng tính': 'Buộc chúng tôi tự kiểm duyệt'

Thanh thiếu niên, Gia đình Florida Hội đồng quản trị trường học về Luật 'Không nói đồng tính': 'Buộc chúng tôi tự kiểm duyệt'

Vụ kiện, nêu tên một số học khu, lập luận rằng dự luật "Không nói đồng tính" được ban hành gần đây của Florida "có hiệu quả im lặng và xóa bỏ học sinh và gia đình LGBTQ +"

Đường băng hạ cánh

Đường băng hạ cánh

Cuối hè đầu thu là mùa hoài niệm. Những chiếc đèn đường chiếu ánh sáng của chúng qua những con đường đẫm mưa, và những chiếc lá dưới chân - màu đỏ cam tắt trong bóng chạng vạng - là lời nhắc nhở về những ngày đã qua.

Hãy tưởng tượng tạo ra một chiến lược nội dung thực sự CHUYỂN ĐỔI. Nó có thể.

Hãy tưởng tượng tạo ra một chiến lược nội dung thực sự CHUYỂN ĐỔI. Nó có thể.

Vào năm 2021, tôi khuyến khích bạn suy nghĩ lại mọi thứ bạn biết về khách hàng mà bạn phục vụ và những câu chuyện bạn kể cho họ. Lùi lại.

Sự mất mát của voi ma mút đã mở ra trái tim tôi để yêu

Sự mất mát của voi ma mút đã mở ra trái tim tôi để yêu

Vào ngày sinh nhật thứ 9 của Felix The Cat, tôi nhớ về một trong những mất mát lớn nhất trong cuộc đời trưởng thành của tôi - Sophie của tôi vào năm 2013. Tôi đã viết bài luận này và chia sẻ nó trên nền tảng này một thời gian ngắn vào năm 2013.

Khi bạn không thể trở thành người mà Internet muốn bạn trở thành

Khi bạn không thể trở thành người mà Internet muốn bạn trở thành

Tôi ghét từ "tàu đắm". Mọi người cảm thấy thoải mái trong la bàn đạo đức của riêng mình, và khi làm như vậy, họ thấy mình vượt qua sự phán xét.

Language