Kopfloses Skript stürzt nach einigen Durchläufen ab

8

Ich habe ein Skript mit einem kopflosen Browser, den ich benutze crontab -e . Es läuft die ersten paar Male gut und stürzt dann mit dem folgenden Traceback ab:

%Vor%

Meine Crontab-Zeile lautet:

%Vor%

Ich möchte das nicht mit dem Python-Skript überladen, also habe ich die relevanten Bits herausgezogen.

%Vor%

Ihre Hilfe wird sehr geschätzt.

BEARBEITEN

Versionen: Firefox 49.0.2; Selen: 3.0.1; geckodriver: geckodriver-v0.11.1-linux64.tar.gz

Fehlercode (fehlgeschlagen am driver.get(url) ):

%Vor%     
HenryM 15.11.2016, 14:16
quelle

1 Antwort

6

Von Mehrere Firefox-Instanzen scheitern mit NS_ERROR_SOCKET_ADDRESS_IN_USE # 99 Dies liegt daran, dass --marionette-port nicht vorhanden ist Die Option wird an geckodriver übergeben - was bedeutet, dass alle Instanzen von geckodriver Firefox starten und den gleichen gewünschten Standardport (2828) übergeben. Die erste firefox-Instanz bindet an diesen Port, zukünftige Instanzen können nicht und alle geckodriver-Instanzen verbinden sich mit der ersten firefox-Instanz - was zu unvorhersehbarem Verhalten führt.

Gefolgt von: Ich denke, eine vernünftige kurzfristige Lösung besteht darin, das zu tun, was die anderen Treiber tun, und Marionette zu bitten, sich an einen vom Geckodriver erzeugten, randomisierten, freien Port zu binden. Derzeit verwendet es 2828 als Standard für alle Instanzen, die es von Firefox hervorbringt. Da Marionette leider noch keine Out-of-Band-Möglichkeit hat, den Port an den Client (geckodriver) zu übermitteln, ist das von Natur aus rassig, aber wir können die Situation in Zukunft mit einem der Vorschläge aus Bug 1240830 verbessern. em>

Diese Änderung wurde in

gemacht %Vor%

Ich denke Zufall funktioniert nur so lange. Erhöhen Sie ein Problem . Für die Versionen von selen, firefox und geckodriver, die Sie haben, ist möglicherweise ein Code-Update erforderlich. Sie können auf Selenium 2.53.0 und firefox ESR 38.8 zurückgreifen, bis dies behoben ist. Ihr Anruf.

UPDATE: Versuchen Sie

%Vor%     
MikeJRamsey56 21.11.2016, 23:07
quelle