Python - Geckodriver çalıştırılabilir selenyumun PATH içinde olması gerekir


435

Programlamaya yeni başladım ve Pythonyaklaşık 2 ay önce başladım ve Sweigart'ın Python ile Sıkıcı Öğeleri Otomatikleştir metnine geçiyorum . IDLE kullanıyorum ve selenyum modülünü ve Firefox tarayıcısını zaten yükledim. Ne zaman webdriver işlevini çalıştırmayı denedim, anladım:

from selenium import webdriver
browser = webdriver.Firefox()

İstisna: -

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. 

Sanırım yolunu ayarlamam gerekiyor geckodriverama nasıl olduğundan emin değilim.


2
Lütfen, benzer soruya cevabımı burada bulabilirsiniz
Andrew

Aynı yola sahip ve daha fazla sorun alıyorum ben geckodriver.exe Python / Python35 dizinine koyuyorum.
tadm123

80
Mac'te:brew install geckodriver
Nostalg.io

1
Chrome tarayıcı üzerinden çalıştırmanın Firefox'tan biraz daha hızlı olduğunu gördüm, bunun için indirmeniz gerekecek chromedriver.
tadm123

Not: Son zamanlarda açık kaynaklı olan Testcafe var. Herhangi bir tarayıcı eklentisi gerektirmez, yerleşiktirler. Selenyum kullanmak istedim ama bu ilginç bir alternatif gibi görünüyor.
Ehvince

Yanıtlar:


355

selenium.common.exceptions.WebDriverException: İleti: 'geckodriver' yürütülebilir dosyasının PATH içinde olması gerekiyor.

Öncelikle selenyum kullanarak en son firefox'u çalıştırmak için en son çalıştırılabilir geckodriver'ı buradan indirmeniz gerekecek

Aslında Selenium istemci bağlamaları geckodriveryürütülebilir dosyayı sistemden bulmaya çalışır PATH. Yürütülebilir dosyayı içeren dizini sistem yoluna eklemeniz gerekir.

  • Unix sistemlerinde, bash uyumlu bir kabuk kullanıyorsanız, sisteminizin arama yoluna eklemek için aşağıdakileri yapabilirsiniz:

    export PATH=$PATH:/path/to/directory/of/executable/downloaded/in/previous/step
  • Windows'ta , tam dizin yolunu yürütülebilir geckodriver'a manuel olarak veya komut satırına eklemek için Path sistem değişkenini güncellemeniz gerekir (etkili olması için PATH sistemine yürütülebilir geckodriver ekledikten sonra sisteminizi yeniden başlatmayı unutmayın) . İlke Unix'tekiyle aynıdır.

Şimdi kodunuzu aşağıdaki gibi çalıştırabilirsiniz: -

from selenium import webdriver

browser = webdriver.Firefox()

selenium.common.exceptions.WebDriverException: İleti: Beklenen tarayıcı ikili konumu, ancak varsayılan konumda ikili bulunamıyor, 'moz: firefoxOptions.binary' özelliği sağlanmadı ve komut satırında ikili bayrak ayarlanmadı

İstisna, Selenium firefox'u bulmaya ve varsayılan konumdan başlatmaya çalışırken firefox'u başka bir konuma yüklediğinizi açıkça belirtir, ancak bulamadı. Firefox'u aşağıdaki gibi başlatmak için açıkça firefox yüklü ikili konum sağlamanız gerekir: -

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)

8
Teşekkürler ama benim set geckodriver.exeüzerinde C:\Python\Python35\seleniumdizinde ve açıklanan gibi yolu ayarlayın ama aşağıda bana hata veriyor:
tadm123

4
Saurabh Gaur'a teşekkürler, şimdi çalışıyor. Firefox yolunu sistem değişkenlerine manuel olarak ekledim ve hepsi çalışıyor. Başlaması biraz zaman alıyor ama sanırım bu normal. Teşekkürler!
tadm123

3
Firefox ikili yolunu belirtmeye başladığımda ilk başta "WebDriverException: İleti: Tarayıcı başlatılamadı: izin reddedildi" hatasını aldım, ancak bilgisayarı (Windows 10) yeniden başlatmak sorunu çözdü. - Başka birinin benimle aynı sorunu vurması ihtimaline karşı.
NoSuchElephantException

3
İkili dosya nedir? Bu, yürütülebilir anlamına mı geliyor?
Kullanıcı

12
Bu cevaba ek olarak PATH, unix ortamını ayarlamayı genişletmek istiyorum . Sistem genişliğine ihtiyaç duymadığınız için kodda ayarlayabilirsiniz: os.environ["PATH"] += os.pathsep + 'path/to/dir/containing/geckodriver/' Veya sadece yolunuzda olan dizinde geckodriver ikili dosyasını tutun:mv geckodriver /usr/local/bin
dsalaj

161

Bu benim için çözdü.

from selenium import webdriver
driver = webdriver.Firefox(executable_path=r'your\path\geckodriver.exe')
driver.get('http://inventwithpython.com')

Yanlış izin alırsanız, yalnızca "excecutable_path = 'path \ to \ your'dtory'" yolundan [r '] dosyasını kaldırmayı deneyin
Darius

@adityarawat Hangi işletim sistemindesiniz?
Nesa

ama şimdi yanlış izinler yerine OSError alıyorum. Bir şekilde geckodriver'ı / usr / local / bin dizinine kopyalamayı başardım. ama şimdi bu yeni hata beni öldürüyor
aditya rawat

@adityarawat buradan geckodriver'ı bağımsız olarak indirebilirsiniz: github.com/mozilla/geckodriver/releases katran ile ayıklayın ve chmod + x ile çalıştırılabilir yapın, / usr / local / bin'de olması gerekmez, sadece var yolunuzu belirtmek için
Nesa

sadece açık olmak için arm7hf.tar dosyasını indirdim ve de çıkardım ve komutu kullanarak export PATH=$PATH:geckodriver(Masaüstünde ayıklanır) yola ekledim . Ama bu da yardımcı olmadı. Hala OSError alıyorum [errno 8]
aditya rawat

121

bu adımlar ubuntu firefox 50'de benim için ÇÖZÜLDÜ.

  1. Geckodriver indir

  2. / Usr / local / bin içindeki geckodriver'ı kopyala

Eklemenize gerek yok

firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
firefox_capabilities['binary'] = '/usr/bin/firefox'
browser = webdriver.Firefox(capabilities=firefox_capabilities)

Kodunuzda yetenek değişkenini ekleyemezsiniz
Andrea Perdicchia

Firefox için indirme dizinini nasıl ayarlayacağınızı biliyor musunuz? Aşağıdaki soruyu Firefox Tercihlerini Ayarla'ya ekledim . Herhangi bir yardım çok takdir edilecektir.
d84_n1nj4

Debian veya Ubuntu'da Firefox'u yüklemek için apt komutunu kullanmalısınız. Windows için hiçbir fikrim yok
Andrea Perdicchia

Teşekkürler. Bu yanıtı uyguladıktan sonra, bir takip sorununu ele almak için bu çözümü de
aldım

Teşekkürler, Pycharm evde ve proje klasöründe olmasına rağmen geckodriver bulamadı, ancak / usr / local / bin'e taşıdıktan sonra mükemmel çalıştı
Ronald Das

32

@Saurabh'ın cevabı sorunu çözüyor, ancak Sıkıcı Öğeleri Python ile Otomatikleştir neden bu adımları içermiyor açıklamıyor .

Bu, kitabın selenyum 2.x'e dayanmasından kaynaklanır ve bu seri için Firefox sürücüsünün gecko sürücüsüne ihtiyacı yoktur. Selenyum geliştirilirken tarayıcıyı çalıştırmak için Gecko arayüzü mevcut değildi.

En son sürüm selenyum 2.x serisinde (örn bakınız 2.53.6 olan bu cevapları sürümleri daha kolay bir görünüm için).

2.53.6 sürüm sayfa hiç kertenkele söz etmez. Ancak sürüm 3.0.2'den beri belgeler açıkça gecko sürücüsünü yüklemeniz gerektiğini belirtir .

Yükseltmeden sonra (veya yeni bir sisteme yüklerseniz), daha önce (veya eski sisteminizde) iyi çalışan yazılımınız artık çalışmazsa ve aceleniz varsa, selenum sürümünü sanal ağınıza sabitleyin.

pip install selenium==2.53.6

ancak elbette, geliştirme için uzun vadeli çözüm, selenyumun en son sürümüyle yeni bir sanal ağ kurmak, gecko sürücüsünü yükleyin ve her şeyin hala beklendiği gibi çalışıp çalışmadığını test etmektir. Ancak, ana sürüm yumruğu, kitabınızın kapsamına girmeyen diğer API değişikliklerini tanıtabilir, bu nedenle selenyum2 ve selenyum3 API'si arasındaki herhangi bir uyuşmazlığı kendiniz çözebileceğinizden emin olana kadar eski selenyumla bağlı kalmak isteyebilirsiniz.


2
keşke bu üst cevap olsaydı
sudo-nim

1
Bu bana yardımcı oldu, teşekkürler Anthon
ghost21blade

24

Homebrew'un kurulu olduğu macOS'ta Terminal komutunu çalıştırabilirsiniz

$ brew install geckodriver

Homebrew zaten genişlediğinden, PATHbaşlangıç ​​komut dosyalarında değişiklik yapmaya gerek yoktur.


@roskakori Bunu yaptım ve başarıyla yüklendi ama yine de aynı hatayı alıyorum
JKC

Bu benim için yaptı, teşekkürler. Firefox 72.0.2 ve Selenyum 3.141.0'ı kullanma
Sam

17

Selenium Python için geckodriver'ı ayarlamak için:

FirefoxDriver ile geckodriver yolunu aşağıdaki kod olarak ayarlaması gerekir:

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

Uygun işletim sisteminiz için geckodriver'ı indirin ( https://github.com/mozilla/geckodriver/releases adresinden ) -> Seçtiğiniz bir klasöre çıkarın -> Yolu yukarıda belirtildiği gibi doğru şekilde ayarlayın

Windows 10'da Python 3.6.2 ve Selenium WebDriver 3.4.3 kullanıyorum.

Geckodriver'ı kurmanın başka bir yolu:

i) Sadece geckodriver.exe dosyasını / Python / Scripts / altına yapıştırın (Benim durumumda klasör: C: \ Python36 \ Scripts)
ii) Şimdi basit kodu aşağıdaki gibi yazın:

self.driver = webdriver.Firefox()

17

Anaconda kullanıyorsanız , yapmanız gereken tek şey sanal ortamınızı etkinleştirmek ve ardından aşağıdaki komutu kullanarak geckodriver'ı kurmaktır :

    conda install -c conda-forge geckodriver

Evet, geckodriver'ı yükler, ancak pycharm hatası aynı kalır.
WebComer

Merhaba, pek çok şey denedim ve bu benim için işe
yarayan

12

Ubuntu 18.04+ ve Yeni Geckodriver Sürümü

Bu, diğer * nix çeşitleri için de çalışmalıdır.

export GV=v0.26.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/

Mac güncellemesi için:

geckodriver-$GV-macos.tar.gz

12

Tartışmaların hala ikili dosyayı indirip yolu manuel olarak yapılandırarak geckodriver'ı kurmanın eski yolu hakkında konuştuğunu görüyorum.

Bu, webdriver-manager kullanılarak otomatik olarak yapılabilir

pip install webdriver-manager

Şimdi sorudaki yukarıdaki kod sadece aşağıdaki değişiklikle çalışacaktır,

from selenium import webdriver
from webdriver_manager.firefox import GeckoDriverManager

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

2
Bu benim için çalıştı. Teşekkürler!
igorkf

Safari ve hatta Internet Explorer'ın benzer bir sürücü yöneticisi var mı?
Mischief_Monkey

11

Pencereler için en kolay yol!
En son sürümünü indirin geckodriverdan burada . Geckodriver.exe dosyasını python dizinine (veya zaten içinde bulunan başka bir dizine PATH) ekleyin . Bu sorunu çözmelidir (Windows 10'da test edilmiştir)


Kötü değil pencere. Hızlı çözüm için teşekkürler.
AJ_

Bu çok kolay bir çözümdür !! Bilgisayarınızı yeniden başlatmanıza bile gerek yok!
olenscki

8

MAC için adımlar:

Basit çözüm, GeckoDriver'ı indirmek ve sistem PATH'ınıza eklemektir. İki yaklaşımdan birini kullanabilirsiniz:

Kısa Yöntem:

1) Geckodriver'ı indirin ve açın .

2) Sürücüyü başlatırken yoldan bahsedin:

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

Uzun Yöntem:

1) Geckodriver'ı indirin ve açın .

2) Açık .bash_profile. Eğer henüz oluşturmadıysanız, komutunu kullanarak yapabilirsiniz: touch ~/.bash_profile. Sonra şunu kullanarak açın:open ~/.bash_profile

3) İndirilenler klasörünüzde GeckoDriver dosyası bulunduğunu düşünürsek, dosyaya aşağıdaki satırları ekleyebilirsiniz .bash_profile:

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

Bu şekilde GeckoDriver yolunu Sistem PATH'ınıza ekliyorsunuz. Bu, Selenyum komut dosyalarınızı yürütürken sisteme GeckoDriver'ın nerede bulunduğunu bildirir.

4) Kaydet .bash_profileve yürütmeye zorla. Bu, değerleri yeniden başlatmak zorunda kalmadan derhal yükler. Bunu yapmak için aşağıdaki komutu çalıştırabilirsiniz:

source ~/.bash_profile

5) Hepsi bu. Bitirdiniz!. Python betiğini şimdi çalıştırabilirsiniz.


1
geckodriverHomebrew ile indirebildim : brew install geckodriverve sonra Firefox'u şu yolla başlatabilirim:driver = webdriver.Firefox(executable_path="/usr/local/bin/geckodriver")
Winterflags

7

Bu konunun gelecekteki okuyucuları için bazı ek giriş / açıklama:

Windows 7, Python 3.6, selenyum 3.11 için bir çözüm olarak aşağıdakiler yeterlidir:

@ dsalaj'ın Unix için bu konu başlığındaki notu Windows için de geçerlidir; PATH env. Windows düzeyinde değişken ve Windows sisteminin yeniden başlatılması önlenebilir.

(1) Geckodriver'ı indirin (bu konuda daha önce açıklandığı gibi) ve (sıkıştırılmamış) geckdriver.exe dosyasını \ seçim \ seçiminizin X: \ Folder \ klasörüne yerleştirin.

(2) Python kodu örneği:

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

Notlar: (1) Yukarıdaki kodun belirtilen url için Firefox tarayıcısını açması yaklaşık 10 saniye sürebilir.
(2) Belirtilen url'de zaten çalışan veya 'Django' dizesini içeren bir sayfa sunan bir sunucu yoksa, python konsolu aşağıdaki hatayı gösterir: selenium.common.exceptions.WebDriverException: İleti: Ulaşılan hata sayfası: yaklaşık : neterror e = connectionFailure & u = http% 3A // localhost% 3A8000 / & c = UTF-8 ve ön ve normal, d = ateş% 20can% E2% 80% 9 =


Teşekkürler, diğer tüm çözümleri denedim ancak Windows'unuzda yalnızca sizinki çalıştı!
pso

4

Aslında en son geckodriver'ı sistem yoluna koymadan kullanabileceğinizi keşfettim. Şu anda kullanıyorum

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

Firefox 50.1.0

Python 3.5.2

Selenyum 3.0.2

Windows 10

Bir VirtualEnv çalıştırıyorum (PyCharm kullanarak yönetiyorum, her şeyi yüklemek için Pip kullandığını varsayıyorum)

Aşağıdaki kodda yürütülebilir_path parametresini kullanarak geckodriver için belirli bir yol kullanabilirim (bunu Lib \ site-paketleri \ selenium \ webdriver \ firefox \ webdriver.py'ye bir göz atarak keşfettim). Not Webdriver çağrılırken parametre bağımsız değişkenlerinin sırasının önemli olduğundan şüphe duyuyorum, bu yüzden benim kodumda çalıştırılabilir_yolu son (en sağdaki son 2. satır)

Ayrıca, test ettiğiniz sitede güvenilmeyen bir sertifika varsa karşılaşacağınız sec_error_unknown_issuer sorununu çözmek için özel bir firefox Profili kullandığımı fark edebilirsiniz. bkz Selenyum kullanarak nasıl devre dışı Firefox'un güvenilmeyen bağlantı uyarısına?

Soruşturmadan sonra, Marionette sürücüsünün eksik ve hala devam etmekte olduğu ve işten çıkarılması veya sertifikaların ayarlanması için çeşitli yetenekler veya profil seçenekleri ayarlama miktarının işe yaramayacağı tespit edildi. Bu yüzden özel bir profil kullanmak daha kolaydı.

Neyse ben yolda olmadan geckodriver çalışmak için nasıl kod İşte:

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')

SyntaxError: (unicode hatası) 'unicodeescape' codec'i baytların kodunu çözemiyor ... Ve epath = r'C: \ Users \ step_ \ Documents \ mtg_buyer \ geckodrivers \ geckodriver.exe 'ye gecko yolunu değiştirmek zorundayım. Belki de Çin Windows 10 kullanmamın nedeni nedir?
Endle_Zhenbo

3

Windows 10 kullanıyorum ve bu benim için çalıştı:

  1. Geckodriver'ı buradan indirin . Kullandığınız bilgisayar için doğru sürümü indirin
  2. İndirdiğiniz dosyayı açın ve içerdiği ".exe" dosyasını kesin / kopyalayın
  3. C: {python kök klasörünüz} 'e gidin. Benimki C: \ Python27 idi. Geckodriver.exe dosyasını bu klasöre yapıştırın.
  4. Geliştirme ortamınızı yeniden başlatın.
  5. Kodu tekrar çalıştırmayı deneyin, şimdi çalışmalıdır.

Geliştirme ortamınızı yeniden başlatmanız gerektiğini belirttiğiniz için teşekkür ederiz.
Derin

3

Kapsayıcı bir Firefox kurmayı düşünün:

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

Şunu kullanarak bağlan 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')

2

Selenium / Python'da yayınlanan kitapların hiçbirinin ve bu konudaki Google üzerinden yapılan yorumların çoğunun Mac'te bunu ayarlamak için yol mantığını açık bir şekilde açıklamaması gerçekten üzücü (her şey Windows'tur !!!!). Youtubes "sonra" de pickup yol kurulum var (bence, ucuz çıkış yolu!). Bu nedenle, harika Mac kullanıcıları için, bash yolu dosyalarınızı düzenlemek için aşağıdakileri kullanın:

> $ touch ~ / .bash_profile; ~ / .bash_profile dosyasını açın

Sonra böyle bir yol ekleyin .... * # Geckodriver için PATH ayarı PATH = “/ usr / bin / geckodriver: $ {PATH}” ihracat PATH

Selenium firefox için PATH ayarı

PATH = “~ / Kullanıcılar / adınızPATH / VEnvPythonInterpreter / lib / python2.7 / site-paketleri / selenyum / webdriver / firefox /: $ {PATH}” ihracat PATH

Firefox sürücüsünde yürütülebilir için PATH ayarı

PATH = “/ Kullanıcılar / adınızPATH / VEnvPythonInterpreter / lib / python2.7 / site paketleri / selenyum / webdriver / common / service.py: $ {PATH}” dışa aktarma PATH *

Bu benim için çalıştı. Benim endişem, Selenium Windows topluluğu gerçek oyunu oynamaya ne zaman başlayacak ve bizi Mac kullanıcılarını kibirli kulüp üyeliğine dahil edecek.


2

Selenyum bu soruyu DESCRIPTION.rst dosyasında yanıtlıyor

Drivers
=======

Selenium requires a driver to interface with the chosen browser. Firefox,
for example, requires `geckodriver <https://github.com/mozilla/geckodriver/releases>`_, which needs to be installed before the below examples can be run. Make sure it's in your `PATH`, e. g., place it in `/usr/bin` or `/usr/local/bin`.

Failure to observe this step will give you an error `selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.

Temel olarak sadece geckodriver'ı indirin, açın ve yürütülebilir dosyayı / usr / bin klasörünüze taşıyın


Bu alıntı linux nane 18 üzerinde çalışan talimatları içerir.
Elliot Robert

2

Windows kullanıcıları için

orijinal kodu şu şekilde kullanın:

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

sonra sürücüyü şuradan indirin: Mozilla / geckodriver

Sabit bir yol (kalıcı olarak) yerleştirin .. örnek olarak, ben koymak:

C: \ Python35

Sonra sistemin ortam değişkenlerine gidin, "Sistem değişkenleri" tablosunda Yol değişkenini arayın ve ekleyin:

C: \ Python35 \ geckodriver

geckodriver, geckodriver.exe değil .


geckodriver, geckodriver.exe değil.
Saurabh Chandra Patel

1

Raspberry Pi'de ARM sürücüsünden oluşturmak ve geckodriver ve log yolunu ayarlamak zorunda kaldım:

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

Sanal ortam ve win10 kullanıyorsanız (belki de diğer sistemler içindir), geckodriver.exe dosyasını sanal ortam dizininizdeki aşağıdaki klasöre koymanız yeterlidir:

... \ my_virtual_env_directory \ komut dosyaları \ geckodriver.exe


1
from webdriverdownloader import GeckoDriverDownloader # vs ChromeDriverDownloader vs OperaChromiumDriverDownloader
gdd = GeckoDriverDownloader()
gdd.download_and_install()
#gdd.download_and_install("v0.19.0")

Bu size Windows üzerinde gekodriver.exe yolunu alacak

from selenium import webdriver
driver = webdriver.Firefox(executable_path=r'C:\\Users\\username\\\bin\\geckodriver.exe')
driver.get('https://www.amazon.com/')

0

Mac 10.12.1 python 2.7.10 bu iş benim için :)

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

Windows 10 ve Anaconda2 kullanıyorum. Sistem yolu değişkenini ayarlamayı denedim ama işe yaramadı. Sonra sadece Anaconda2 / Scripts klasörüne geckodriver.exe dosyasını ekledim ve şimdi her şey harika çalışıyor. Benim için yol: -

C: \ Kullanıcılar \ Bhavya \ Anaconda2 \ Scripts


0

Windows 10'da sürücü yollarını eklemek istiyorsanız:

  1. "Bu PC" simgesine sağ tıklayın ve "Özellikler" i seçin resim açıklamasını buraya girin

  2. “Gelişmiş Sistem Ayarları” na tıklayın

  3. Ekranın altındaki "Ortam Değişkenleri" ni tıklayın
  4. "Kullanıcı Değişkenleri" bölümünde "Yol" u vurgulayın ve "Düzenle" yi tıklayın
  5. “Yeni” ye tıklayarak ve eklediğiniz ve vurduğunuz sürücünün yolunu yazarak değişkenlerinize yol ekleyin.
  6. Yola girmeyi tamamladıktan sonra “Tamam” ı tıklayın
  7. Tüm ekranları kapatana kadar “Tamam” ı tıklamaya devam edin


0
  1. doğru sürücü (geckodriver), x86 veya 64 sürümüne sahip olduğunuzdan emin olun.
  2. doğru ortamı kontrol ettiğinizden emin olun, örneğin iş bir Docker'da çalışıyorken, environmnet kontrol edilirse ana işletim sistemi

0

benim için aynı ortamda geckodriver'ı kurmak yeterliydi:

$ brew install geckodriver

ve kod değişmedi:

from selenium import webdriver
browser = webdriver.Firefox()

0

Benim 5 sent eklemek için, echo PATH(Linux) yapmak ve sadece geckodriver'ı istediğiniz klasöre taşımak da mümkündür . Hedef bir sistem (sanal ortam değil) klasörü ise, sürücü genel olarak erişilebilir hale gelir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.