2016-05-22 17 views
2

Warum passiert das mit Selen mit Python und Firefox? Selen kann nicht zu einer einfachen Schleife skalieren. Warum kann Firefox nicht skalieren? Im Laufe der Zeit entscheidet es sich, einen Fehler zu melden und zu beenden.Python Selen skaliert nicht mit Firefox - Nachricht: Das Profil kann nicht geladen werden. Profil Dir

Mozilla Firefox 45.0 Selen. Version '2.53.2'

from pyvirtualdisplay import Display 
display = Display(visible=0, size=(800, 600)) 
display.start() 
mylist = ['page1','page1',...,'pageN'] 
while True: 
    for data in mylist: 

     browser = webdriver.Firefox() 
     try: 
      myfunc(data) # Code that uses selenum to fetch pages 
     except: 
      pass 
     browser.quit() 
    time.sleep(60) 



No handlers could be found for logger "sentry.errors.serializer" 
Traceback (most recent call last): 
    File "platrieveerp.py", line 231, in <module> 
    browser = webdriver.Firefox() 
    File "/usr/local/lib/python2.7/dist-packages/selenium-2.53.2-py2.7.egg/selenium/webdriver/firefox/webdriver.py", line 103, in __init__ 
    self.binary, timeout) 
    File "/usr/local/lib/python2.7/dist-packages/selenium-2.53.2-py2.7.egg/selenium/webdriver/firefox/extension_connection.py", line 51, in __init__ 
    self.binary.launch_browser(self.profile, timeout=timeout) 
    File "/usr/local/lib/python2.7/dist-packages/selenium-2.53.2-py2.7.egg/selenium/webdriver/firefox/firefox_binary.py", line 68, in launch_browser 
    self._wait_until_connectable(timeout=timeout) 
    File "/usr/local/lib/python2.7/dist-packages/selenium-2.53.2-py2.7.egg/selenium/webdriver/firefox/firefox_binary.py", line 106, in _wait_until_connectable 
    % (self.profile.path)) 
selenium.common.exceptions.WebDriverException: Message: Can't load the profile. Profile Dir: /tmp/tmpOgsKOx If you specified a log_file in the FirefoxBinary constructor, check it for details. 
+0

Quick-Check - würde der gleiche Fehler bei 'driver.close geworfen werden()' statt ' driver.quit() '? Vielen Dank. – alecxe

Antwort

1

Selen versagt nicht, während die Schleife ausgeführt wird, ist es bei webdriver.Firefox versagt(). Der Fehler wird erkannt, wenn die Verbindung zu einem bestimmten Zeitpunkt nach der Zeile 231 abbricht, wenn das Skript eine offene Firefox-Anwendung immer noch nicht erkennen kann.

Es ist nur ein Fehler in Selen beim Ausführen mit einem kopflosen Browser. Um eine funktionierende Version von Selen, lief

sudo pip install -U selenium 

Dies sollte ein ähnliches Problem sein: Selenium: FirefoxProfile exception Can't load the profile

+0

Aber .. das OP verwendet bereits die neueste Version 2.53.2 Selen-Paket .. – alecxe

+0

Ich hatte eigentlich das gleiche Problem früher heute und dachte, ich löste es mit der obigen Aussage. Es stellt sich heraus, dass es nur funktioniert, wenn ich das Skript über eine Crontab statt im Terminal ausführen. Nicht, dass das Ausführen Ihres Skripts mit einer Crontab ist die Lösung, aber nur teilen mein Problem –

+0

Ich lief das Skript zweimal heute, erfolgreich und dann begann zu dieser Falle zu fallen, löschte temporäre Dateien, hat nicht funktioniert. Worst Teil ist, es funktioniert immer noch in meinem lokalen, nur aufgehört zu arbeiten auf dem Server! – Shaardool

Verwandte Themen