Laufende Selenium WebDriver Pythonbindungen in Chrom

Ich habe bei der Arbeit mit Selen ein Problem gemacht. Für mein Projekt muss ich Chrome verwenden. Allerdings kann ich keine Verbindung zu diesem Browser nach dem Starten mit Selen.

Aus irgendeinem Grund kann Selen Chrome nicht selbst finden. Dies ist, was passiert, wenn ich versuche, Chrome ohne einen Pfad 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 dann den Chromium-Pfad in den Code aufgenommen, der Chrome startet. Der Interpreter findet jedoch keine Steckdose, um eine Verbindung herzustellen:

 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 Chrom mit:

  Chrom - remote-shell-port = 9222 

Das hat aber auch nicht geklappt

PS Hier sind einige Informationen über mein System:

  Www-client: chrom 15.0.874.121  
 Dev-lang: python 2.7.2-r3 Selen 2.11.1  
 OS: GNU / Linux Gentoo Kernel 3.1.0-gentoo-r1 

7 Solutions collect form web for “Laufende Selenium WebDriver Pythonbindungen in Chrom”

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

Finden Sie unter http://code.google.com/p/selenium/wiki/ChromeDriver für vollständige Informationen darüber, wie Draht Dinge auf.

Bearbeiten:

Richtig, scheint ein Fehler in den Python-Bindungen zu sein, wenn man die Chromedriver-Binärdatei aus dem Pfad oder der Umgebungsvariablen liest. Scheint, wenn chromedriver nicht in deinem Weg ist, musst du es als Argument an den Konstruktor weitergeben.

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

Nur Mac OSX

Ein einfacher Weg, um loszulegen (vorausgesetzt, Sie haben bereits Homebrew installiert, was Sie sollten, wenn nicht, gehen Sie das zuerst und lassen homebrew machen Ihr Leben besser) ist, nur den folgenden Befehl laufen:

 brew install chromedriver 

Das sollte den chromedriver in deinen weg stellen und du solltest alles setzen

Für Linux

  1. Prüfen Sie, ob Sie die neueste Version von Chrom Brwoser-> chromium-browser -version Version installiert haben
  2. Wenn nicht, installieren Sie die neueste Version von Chrom sudo apt-get install chromium-browser
  3. Bekomme passende Version von Chrom Fahrer von hier
  4. Entpacken Sie die chromedriver.zip
  5. Verschieben Sie die Datei in /usr/bin Verzeichnis sudo mv chromedriver /usr/bin
  6. Goto /usr/bin Verzeichnis und du musst so etwas wie chmod a+x chromedriver , um es ausführbar zu markieren.
  7. Endlich kannst du den code ausführen

     import os from selenium import webdriver from pyvirtualdisplay import Display display = Display(visible=0, size=(800, 600)) display.start() driver = webdriver.Chrome() driver.get("http://www.google.com") print driver.page_source.encode('utf-8') driver.quit() display.stop() 

Für Windows

Download Webdriver von:

http://chromedriver.storage.googleapis.com/2.9/chromedriver_win32.zip

oder

Laden Sie den neuesten chromedriver von hier herunter

Fügen Sie die Datei chromedriver.exe in den Ordner "C: \ Python27 \ Scripts" ein.

Das sollte jetzt funktionieren.

 from selenium import webdriver driver = webdriver.Chrome() 

Für windows bitte die chromedriver.exe unter <Install Dir>/Python27/Scripts/

Für Windows 'IDE:

Wenn Ihr Weg nicht funktioniert, können Sie versuchen, die chromedriver.exe zu Ihrem Projekt hinzuzufügen, wie in dieser Projektstruktur.

Chromedriver.exe

Dann sollten Sie die chromedriver.exe in Ihre Hauptdatei laden. Für mich habe ich die driver.exe in driver.py geladen.

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

.. bedeutet driver.py's obere Verzeichnis von driver.py's

. driver.py das Verzeichnis, in dem sich der driver.py befindet

Hoffe, das wird hilfreich sein

Es gibt 2 Möglichkeiten, um Selen-Python-Tests in Google Chrome auszuführen. 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 herunter

Weg 1:

I) Extrahiere die heruntergeladene Zip-Datei in ein Verzeichnis / Ort deiner Wahl
Ii) Setzen Sie den ausführbaren Pfad in Ihren Code wie folgt:

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

Weg 2:

Ich füge einfach die chromedriver.exe unter / Python / Scripts / (In meinem Fall war der Ordner: C: \ Python36 \ Scripts)
Ii) Schreiben Sie nun den einfachen Code wie folgt:

 self.driver = webdriver.Chrome() 
  • Pytest: Wie kann man den Rest der Tests in der Klasse überspringen, wenn man versagt hat?
  • Python SELENIUM Ausgabe
  • SyntaxError versucht zu verwenden Select in Selen für python
  • Python file upload selenium
  • Finden Sie eine besondere Art von Tasten mit Selen und Python
  • Öffnen Sie das Web in der neuen Registerkarte Selen + Python
  • Selen ajax dynamische Paginierungsbasis Spinne
  • Python-Element ist nicht mehr an das Dom Selen gebunden
  • Lesen Sie einen versteckten Wert in einem div mit Selen-Python-Bindung
  • Nicht in der Lage, Firefox von Selen in Python auf AWS Maschine aufrufen
  • Wie kann Selen-Batch viele isElementDisplayed Anrufe?
  • Python ist die beste Programmiersprache der Welt.