2017-09-20 2 views
0

Ich bin neu in Python und ich versuche, Selenium in Debian zu verwenden, aber es funktioniert nicht, konkreter scheint es in einer Schleife zu bleiben und nichts passiert. Das nächste Skript ist der Test, dass ich verwendet habe:Selen öffnet den Browser in Python nicht

#!/usr/bin/env python 
from selenium import webdriver 
browser = webdriver.Firefox() 
browser.get('http://www.python.org') 

Als ich das Drehbuch unterbrechen Sie den folgenden Text angezeigt:

Traceback (jüngste Aufforderung zuletzt):

File „prueba_parseo .py ", Zeile 7, im Browser = webdriver.Firefox() Datei " /usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py ", Zeile 154, in init keep_alive = True)

Datei "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", Linie 140, in init self.start_session (desired_capabilities, browser_profile)

Datei "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", Linie 229, in start_session response = self.execute (Command.NEW_SESSION, Parameter)

Datei "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py" Leitung 295, in auszuführen response = self.command_executor.execute (driver_command, params)

Datei "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/remote_connection.py", Linie 464, führt in return self._request (command_info [0], uRL, Körper = data)

Datei "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/remote_connection.py" Linie 488, in _request resp = self._conn.getrespo (Nse)

File "/usr/lib/python2.7/httplib.py", Zeile 1111, in GetResponse response.begin()

File „/usr/lib/python2.7/httplib Py“, Linie 444, beginnen in Version, Status, Grund = self._read_status()

File "/usr/lib/python2.7/httplib.py", Linie 400, in _read_status line = self .fp.readline (_MAXLINE + 1)

File "/usr/lib/python2.7/socket.py", Linie 476, in readline- data = self._sock.recv (self._ rbufsize)

KeyboardInterrupt

Ich habe nach einer Antwort gesucht, aber nichts funktioniert. Ich habe die Versionen der Pakete geändert, export no_proxy = "localhost, 127.0.0.1"

OS: Debian 5

Python: 2.7

Selen: 3.5

Geckodriver: 0.17.0

Firefox: 52,0

Ich weiß nicht, was andere zu tun oder was zu ändern. Vielen Dank!

+0

Bitte bestätigen Sie Ihre Firefox 52 sind kompatibel mit Geckodriver 0.17.0 und Selenium 3.5, verwende ich Chrom in den meisten Zeit, falls Sie auf Chrom versuchen wollen, mein Chrom 60 ist, ist chromedriver 2,30, Selen 3.4.0. Ich denke Selen 3.5.0 sollte in Ordnung sein. – yong

+0

Ja, sie sind kompatibel. Vielleicht sollte ich den Browser wechseln und es mit Chrome versuchen. – Ander

+0

Ich habe die Antwort gefunden. Das Problem war, dass ich das Skript remote und nicht vom lokalen Computer aus gestartet habe. – Ander

Antwort

0

Meine Vermutung ist, dass es eigentlich alles gut geht und der Browser im Hintergrund gestartet wird. Der Grund, warum es offen bleibt, liegt wahrscheinlich an der Standardoption keep_alive=True, die ich in Ihrem Traceback sehen kann.

Versuchen Sie, den Browser mit browser.close() oder browser.quit() zu schließen, wenn Sie mit den Tests fertig sind.

Aus der Dokumentation:

Schließlich werden die Browser-Fenster geschlossen. Sie können die Methode statt Schließen auch aufrufen. Das Beenden beendet den gesamten Browser, während Schließen einen Tab schließt, aber wenn nur ein Tab geöffnet war, wird der Browser standardmäßig vollständig beendet.

http://selenium-python.readthedocs.io/getting-started.html#simple-usage

+0

Immer noch in der Schleife bleiben, ändert sich nichts und der gleiche Text erscheint. Es sieht so aus, als ob das Problem von einem Webdriver kommt, aber ich weiß nicht warum. – Ander

+0

"keep_alive = True" ist nicht der Grund –