Ich habe eine lange laufende Python-App, die regelmäßig (alle 30-60 Sekunden) eine Webseite mit Selen und Chrome-Treiber öffnen, etwas Javascript ausführen und einen Screenshot machen wird. Es läuft auf einer EC2-Ubuntu-Instanz mit Chrome in Xvfb und zum größten Teil funktioniert alles, außer zeitweise wird das Programm hängen bleiben. Es geschieht auf einer dieser Linien:Selenium Chromedriver hängt?
options = Options()
options.add_argument("--disable-web-security")
options.add_argument("--webdriver-logfile=webdrive.log")
dc = DesiredCapabilities.CHROME
dc['loggingPrefs'] = {'browser': 'ALL'}
driver = webdriver.Chrome(chrome_options=options, desired_capabilities=dc)
driver.get(url);
(Ich habe keine genaue Linie, aber ich weiß aus Debug-Anweisungen, die Sie eingefügt haben, dass es irgendwo zwischen hier)
Leider ist die Programm stürzt nicht ab, so dass es keine Fehlermeldungen gibt, es wartet endlos seit 19 Uhr letzte Nacht. Laufende strace -p 'python program pid'
kehrt: wait4(-1,
und strace -p 'chromedriver pid'
kehrt recvfrom(20,
läuft Ich kann in ps axjf
sehen, dass der Prozess noch läuft, es ist einfach nichts zu tun. Ich bin irgendwie im Verlust von was jetzt zu tun, irgendwelche Vorschläge?
chromedriver Version: 2.10.267518
Google Chrome 40.0.2214.111
Selen (mit pip installiert ist): 2.42.1
#https://github.com/cgoldberg/xvfbwrapper
xvfb = Xvfb(width=1920, height=1920)
xvfb.start()
---- ---- EDIT
Ich habe gerade aktualisiert auf ChromeDriver 2.14.313457
und Selenium 2.44.0
, hoffentlich wird dies das Problem beheben. Ich werde das für jetzt offen lassen. Danke für den Rat bis jetzt Jungs!
---- ---- EDIT
so wurde der Dienst beendet noch auflegt. Ich frage mich, ob das daran liegt, dass ich für jeden Screenshot google-chrome schließe und neu starte? Führt das möglicherweise irgendwie zu einem Speicherverlust? Wie könnte ich das diagnostizieren?
Hängt es, wenn Chrome-Optionen nicht angegeben sind? Welche Selen- und Chromversionen verwendest du? – alecxe
Versuchen Sie außerdem, Debugprotokollmeldungen hinzuzufügen, und sehen Sie, in welcher Zeile es hängt. Zeigen Sie auch, wie Sie 'xvfb' starten. Vielen Dank. – alecxe
sehe meine Änderungen. Ich habe über die wenigen Male, die das passiert ist, Debug-Nachrichten hinzugefügt, obwohl ich denke, dass ich nicht gründlich genug war. – Trevor