webdriver warten, für den ajax-request in python
Derzeit Schreibe ich webdriver-Tests für die Suche verwendet ajax für die Vorschläge. Test funktioniert auch wenn ich auf add explicit warten Sie nach der Eingabe die Suche nach Inhalten und drücken Sie die EINGABETASTE.
wd.find_element_by_xpath("//div[@class='searchbox']/input").send_keys("obama")
time.sleep(2)
wd.find_element_by_xpath("//div[@class='searchbox']/input").send_keys(Keys.RETURN)
aber
wd.find_element_by_xpath("//div[@class='searchbox']/input").send_keys("obama")
wd.find_element_by_xpath("//div[@class='searchbox']/input").send_keys(Keys.RETURN)
ausfällt. Ich bin der Ausführung von tests auf ec2 mit 1 virtuellen cpu. Ich bin zu Ahnen, habe ich enter gedrückt, noch bevor GET-Anfragen in Bezug auf die Suche geschickt werden und wenn ich drücken Sie die EINGABETASTE, bevor Vorschläge, schlägt fehl.
Gibt es eine bessere Möglichkeit, das hinzufügen einer expliziten wartet?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann man tatsächlich fügen Sie eine explizite warten für das Vorhandensein eines Elements wie
Finden Sie unter: http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp#explicit-and-implicit-waits
Fügen Sie diese Methode, wo ich sicher die API-Antworten werden wieder vom server
Und was ist mit:
für dein Beispiel:
In diesem Fall jedes mal, wenn Sie gehen, um zu klicken oder element suchen Fahrer wird versuchen, das zu tun diese Aktion jede 0,5 Sekunde über 10 Sekunden. In diesem Fall müssen Sie nicht hinzufügen, warten Sie, jedes mal.
Hinweis: es ist Aber nur über element auf dem Bildschirm. Es wird nicht warten, bis einige JS-Aktionen endet.