Chrome'da Selenium WebDriver python bağlantılarını çalıştırma


147

Selenium ile çalışırken bir sorunla karşılaştım. Projem için Chrome kullanmam gerekiyor. Ancak, Selenium ile başlattıktan sonra o tarayıcıya bağlanamıyorum.

Nedense Selenium Chrome'u tek başına bulamıyor. Bir yol eklemeden Chrome'u başlatmaya çalıştığımda olan şey budur:

Traceback (most recent call last):
  File "./obp_pb_get_csv.py", line 73, in <module>
    browser = webdriver.Chrome() # Get local session of chrome
  File "/usr/lib64/python2.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 46, in __init__
    self.service.start()
  File "/usr/lib64/python2.7/site-packages/selenium/webdriver/chrome/service.py", line 58, in start
    and read up at http://code.google.com/p/selenium/wiki/ChromeDriver")
selenium.common.exceptions.WebDriverException: Message: 'ChromeDriver executable needs to be available in the path.                 Please download from http://code.google.com/p/selenium/downloads/list                and read up at http://code.google.com/p/selenium/wiki/ChromeDriver'

Bu sorunu çözmek için Chrome'u başlatan koda Chromium yolunu dahil ettim. Ancak, yorumlayıcı bağlanmak için bir yuva bulamıyor:

Traceback (most recent call last):
  File "./obp_pb_get_csv.py", line 73, in <module>
    browser = webdriver.Chrome('/usr/bin/chromium') # Get local session of chrome
  File "/usr/lib64/python2.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 46, in __init__
    self.service.start()
  File "/usr/lib64/python2.7/site-packages/selenium/webdriver/chrome/service.py", line 64, in start
    raise WebDriverException("Can not connect to the ChromeDriver")
selenium.common.exceptions.WebDriverException: Message: 'Can not connect to the ChromeDriver'

Ayrıca krom ile başlatarak sorunu çözmeyi denedim:

krom - uzaktan-kabuk-bağlantı noktası = 9222

Ancak, bu da işe yaramadı.

PS. Sistemim hakkında bazı bilgiler:

www-istemci: krom 15.0.874.121  
dev-lang: python 2.7.2-r3 Selenyum 2.11.1  
İşletim Sistemi: GNU / Linux Gentoo Kernel 3.1.0-gentoo-r1

Sadece "--remote-shell-port" un geçerli bir komut satırı seçeneği olmadığını bildirmek istedim. Bkz. Peter.sh/experiments/chromium-command-line-switches ("--remote-debugging-port" doğru olabilir. Lütfen bu seçeneği kullanmadan önce tüm krom örneklerini kapatmanız gerektiğini unutmayın. mevcut bir tarayıcı oturumundaki yeni pencere çalışmıyor).
— dpat

Yanıtlar:


133

Bağımsız ChromeDriver ikili dosyasının (Chrome tarayıcı ikili dosyasından farklı) yolunuzda olduğundan veya webdriver.chrome.driver ortam değişkeninde bulunduğundan emin olmanız gerekir.

İşlerin nasıl yapıldığına dair tam bilgi için http://code.google.com/p/selenium/wiki/ChromeDriver adresine bakın .

Düzenle:

Doğru, yoldan veya ortam değişkeninden kromoriver ikilisini okuyan Python bağlarında bir hata gibi görünüyor . Görünüşe bakılırsa, chromedriver yolunuzda değilse bunu yapıcıya bir argüman olarak iletmeniz gerekir.

import os
from selenium import webdriver

chromedriver = "/Users/adam/Downloads/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
driver.get("http://stackoverflow.com")
driver.quit()

Üzgünüm bundan bahsetmeyi unut. Bu bağlantıyı aldım.
— Akendo

2
Firefox Webdriver yerine Chromedriver'ı denedim .. neredeyse 3 kat daha fazla performans kazancı ..
— UberNeo

4
Ayrıca, sadece yapıcıya iletilen argüman yoludur olduğunu belirtmek istiyorum ChromeDriver ikili ve değil ChromeDriver ikili içeren dizin (yanlış neler olduğunu bulmaya geçmiş yarım saat boşa).
— TheRookierLearner

107

Linux için

  1. Chrome Brwoser'ın son sürümünü yüklediğinizden emin olun-> chromium-browser -version
  2. Değilse, kromun en son sürümünü yükleyin sudo apt-get install chromium-browser
  3. dan krom sürücüsünün uygun sürümünü almak burada
  4. Chromedriver.zip dosyasını açın
  5. Dosyayı /usr/bindizine taşısudo mv chromedriver /usr/bin
  6. /usr/binDizine gitcd /usr/bin
  7. Şimdi, çalıştırılabilir sudo chmod a+x chromedriverolarak işaretlemek gibi bir şey çalıştırmanız gerekir .
  8. son olarak kodu yürütebilirsiniz.

    from selenium import webdriver
    
    driver = webdriver.Chrome()
    driver.get("http://www.google.com")
    print driver.page_source.encode('utf-8')
    driver.quit()
    display.stop()

1
Çok hoş! Bir not: 64-bit linux çalıştırmama rağmen bunu sadece 32-bit kromsürücü ile çalıştırabildim.
— Imran

Ubuntu'da (14.04), krom-chromdriver paketini (örn. Apt-get ile) kurabilir ve kromedriver dosyasının yolunu PATH kabuk değişkenine PATH = "$ {PATH}" ekleyebilirsiniz: / usr / lib / chromium-browser / Bunu .bashrc'nize eklerseniz, selenyum ile her test etmek istediğinizde ayarlamanız gerekmez.
— Arpad Horvath

1
aslında bu cevabın çok daha fazla oyu olmalı. temelde bu geckodriver gibi her sürücü için gitmek için bir yol.
— holzkohlengrill

Krom tarayıcı sürümüm (Ubuntu 16.04 üzerinde çalışan Ubuntu üzerine kurulu Chromium 67.0.3396.99) olarak belirtiliyor, ancak bağlantının yalnızca 2.0-2.9 sürümleri var. Yardıma ihtiyacım var.
— Vaibhav Maheshwari

93

Yalnızca Mac OSX

Devam etmenin daha kolay bir yolu (zaten kurulu olan homebrew'unuz varsayalım , eğer değilse, önce bunu yapın ve homebrew'un hayatınızı daha iyi hale getirmesine izin verin) aşağıdaki komutu çalıştırmaktır:

brew install chromedriver

Bu, sürücüyü yolunuza koymalı ve hepiniz hazır olmalısınız.


Mac üzerinde çalışamaz. selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH.
— wyx

1
@wyx Ortamınız doğru ayarlanmamış olabilir. Koşmayı deneyin brew doctorve bunun bir şey bulup bulmadığını görün.
— Jachin

2
Mac'iniz olduğu için mutlu olduğunuzda bu sıcak ve bulanık anlardan biri. Çok kolay.
— Kullanıcı

KALP!
— Demlemek

52

Pencereler için

ChromeDriver'ı bu doğrudan bağlantıdan indirin VEYA bu sayfadan en son sürümü edinin .

chromedriver.exeDosyayı C:\Python27\Scriptsklasörünüze yapıştırın .

Bu şimdi çalışmalıdır:

from selenium import webdriver
driver = webdriver.Chrome()

23

Pencereler için lütfen chromedriver.exe yerleştirilen altından<Install Dir>/Python27/Scripts/


ve ubuntu'ya nereye koymalı? int /usr/lib/ya da başka bir yerde?
— Gaurav Jain

Dosyaya sahip olmak , çalıştığı yere PATHkoymak yeterli değildi . /Scripts/ride.py
— Qwerty

1

Google Chrome'da Selenium python testlerini çalıştırmanın 2 yolu vardır. Windows'u (benim durumumda Windows 10) düşünüyorum:

Önkoşul: En son Chrome Sürücüsünü şu adresten indirin: https://sites.google.com/a/chromium.org/chromedriver/downloads

Yol 1:

i) İndirilen zip dosyasını istediğiniz bir dizine / konuma çıkarın
ii) Kodunuzdaki yürütülebilir yolu aşağıdaki gibi ayarlayın:

self.driver = webdriver.Chrome(executable_path='D:\Selenium_RiponAlWasim\Drivers\chromedriver_win32\chromedriver.exe')

Yol 2:

i) chromedriver.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.Chrome()

-1

Windows IDE için:

Yolunuz işe yaramazsa, chromedriver.exebu proje yapısında olduğu gibi projenize eklemeyi deneyebilirsiniz .

chromedriver.exe

Sonra chromedriver.exeana dosyaya yüklemeniz gerekir . Bana gelince, ben yüklü driver.exein driver.py.

def get_chrome_driver():
return webdriver.Chrome("..\\content\\engine\\chromedriver.exe",
                            chrome_options='--no-startup-window')

.. anlamına geliyor driver.py'süst dizin

. dizini, driver.py bulunduğu

Umarım bu yardımcı olacaktır.

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.