webentwicklung-frage-antwort-db.com.de

Ausführen von Selenium WebDriver python bindings in chrome

Bei der Arbeit mit Selen ist mir ein Problem begegnet. Für mein Projekt muss ich Chrome verwenden. Ich kann jedoch keine Verbindung zu diesem Browser herstellen, nachdem ich ihn mit Selenium gestartet habe.

Aus irgendeinem Grund kann Selenium Chrome von selbst nicht finden. Dies passiert, wenn ich versuche, Chrome ohne Angabe eines Pfads zu starten:

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'

Um dieses Problem zu lösen, habe ich den Chromium-Pfad in den Code eingefügt, mit dem Chrome gestartet wird. Der Interpreter kann jedoch keinen Socket finden, mit dem eine Verbindung hergestellt werden kann:

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'

Ich habe auch versucht, das Problem zu lösen, indem ich chrome mit:

chrom - Remote-Shell-Port = 9222

Dies funktionierte jedoch auch nicht.

PS. Hier einige Informationen zu meinem System:

www-client: chrom 15.0.874.121 
 dev-lang: python 2.7.2-r3 Selen 2.11.1 
 Betriebssystem: GNU/Linux Gentoo Kernel 3.1. 0-gentoo-r1
141
Akendo

Sie müssen sicherstellen, dass sich die eigenständige ChromeDriver-Binärdatei (die sich von der Chrome Browser-Binärdatei) unterscheidet) entweder in Ihrem Pfad befindet oder in der Umgebungsvariablen webdriver.chrome.driver verfügbar ist.

vollständige Informationen zur Verkabelung finden Sie unter http://code.google.com/p/Selenium/wiki/ChromeDriver .

Bearbeiten:

Richtig, scheint ein Fehler in den Python) -Bindungen zu sein, die den Chromedriver-Binärcode aus dem Pfad oder der Umgebungsvariablen lesen Scheint, wenn Chromedriver nicht in Ihrem Pfad ist, müssen Sie es als Argument an den Konstruktor übergeben.

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()
131
adam goucher

Für Linux

  1. Stellen Sie sicher, dass Sie die neueste Version von chrome brwoser-> chromium-browser -version Installiert haben.
  2. Wenn nicht, installieren Sie die neueste Version von chrome Sudo apt-get install chromium-browser
  3. beziehen Sie die entsprechende Version des Treibers chrome von hier
  4. Entpacken Sie den Chromedriver.Zip
  5. Verschiebe die Datei in das Verzeichnis /usr/binSudo mv chromedriver /usr/bin
  6. Gehe zum /usr/bin Verzeichnis cd /usr/bin
  7. Nun müssten Sie etwas wie Sudo chmod a+x chromedriver Ausführen, um die ausführbare Datei zu markieren.
  8. schließlich können Sie den Code ausführen.

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

Nur Mac OSX

Eine einfachere Möglichkeit, loszulegen (vorausgesetzt, Sie haben bereits homebrew installiert, und wenn nicht, sollten Sie dies zuerst tun und homebrew Ihr Leben verbessern lassen), besteht darin, einfach den folgenden Befehl auszuführen:

brew install chromedriver

Das sollte den Chromedriver in deinen Weg bringen und du solltest fertig sein.

93
Jachin

Für Windows

Laden Sie ChromeDriver von diesem direkten Link herunter [~ # ~] oder [~ # ~] Holen Sie sich die neueste Version von dieser Seite .

Fügen Sie das chromedriver.exe Datei in Ihrem C:\Python27\Scripts Mappe.

Das sollte jetzt funktionieren:

from Selenium import webdriver
driver = webdriver.Chrome()
52
Abdul Majeed

Für Windows bitte das chromedriver.exe unter gestellt <Install Dir>/Python27/Scripts/

23
user2253967

Es gibt zwei Möglichkeiten, Selenium python Tests in Google Chrome. Ich erwäge Windows (Windows 10 in meinem Fall):

Voraussetzung: Laden Sie den neuesten Chrome Treiber von: https://sites.google.com/ a/chromium.org/chromedriver/downloads

Weg 1:

i) Extrahieren Sie die heruntergeladene Zip-Datei in ein Verzeichnis Ihrer Wahl
ii) Legen Sie den ausführbaren Pfad in Ihrem Code wie folgt fest:

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

Weg 2:

i) Fügen Sie einfach die chromedriver.exe unter/Python/Scripts/ein (in meinem Fall lautete der Ordner: C:\Python36\Scripts).
ii) Schreiben Sie nun den folgenden einfachen Code:

self.driver = webdriver.Chrome()
1
Ripon Al Wasim