2017-05-01 3 views
0

I Selenium mit Python bin mit den urls (einschließlich img URLs für Anzeigen, die im Inneren verschachtelten Iframes typischerweise befinden) zu erhalten alle von einer Webseite angeforderten Ressourcen. Dies funktioniert jedoch möglicherweise nicht für Ressourcen innerhalb von iframes und für ajax Anfragen. Lesen Sie die Dokumentation auf this und betrachten otherStackOverflow Antworten, es scheint, als ob Sie ExpectedCondition verwenden können, um auf ein Element zu warten. Aber in meinem Fall, wo ich mehrere Websites laden muss (mehrere tausend Top Alexa Websites), gibt es möglicherweise kein gemeinsames Element, auf das ich warten könnte. Ich habe driver.set_page_load_timeout(60) dafür verwendet, seit 60 Sekunden schien wie eine ausreichend lange Zeit für alle verschachtelten iframes schließlich auftauchen. Ich habe mich gefragt, ob irgendjemand bestätigen könnte, ob dies der richtige Weg ist und ob es einen anderen Weg gibt, der besser ist. Vielen Dank.Warten auf alle Ressourcen mit Python in Selenium laden

EDIT: Ich weiß, dass die Frage schon einmal beantwortet wurde, aber zur Klärung der Einzelheiten meiner Frage glaube ich, dass all diese Antworten eine Lösung bieten, ein Element zu entdecken, von dem Sie wissen, dass es auf der Seite existiert Fall, ich habe kein solches Wissen im voraus.

+0

haben Sie 'document.readyState' versucht? –

Antwort

2

Ich benutze Selen jeden Tag, und bis zu meinem Wissen, gibt es keine Möglichkeit, iframes oder AJAX vollständig oder nicht zu bestätigen, ist das einzige, was bis jetzt (in meinem Wissen) Einstellung der Seitenladezeit oder time.sleep zu die Ausdehnung, die Sie denken, dass es für die Fälle passend ist, die Sie ein allgemeines Element als ein Indikator nicht finden können, um zu überprüfen, ob die Seite vollständig geladen ist oder nicht. Viele Fragen dazu bereits beantwortet Selenium Python: how to wait until the page is loaded?

+0

Phong Danke für die Antwort, ich werde versuchen, die Erwartete-Bedingung-Technik zu verwenden. Im Moment ist das Problem, das ich habe, dass sowohl 'expected_conditions' als auch' set_page_load_timeout' nicht dem '60s'-Limit folgen, das ich ihnen gebe, das erste mal viel später, und das zweite mal viel earliler. Irgendwelche Ideen? – QPTR

Verwandte Themen