Ich beginne gerade mit Selenium und schrieb eine Reihe von Tests mit Chrome. Ich habe dann versucht, die gleichen Tests mit Firefox durchzuführen, aber die meisten von ihnen scheitern.Firefox wird darauf warten, dass eine neue Seite geladen wird, nachdem auf einen Link in Selenium geklickt wurde.
Ich habe eine Reihe von Tests, die ein bisschen wie diese sind:
1. Find link
2. Click link
3. Confirm the title of the new page matches what I expect
Dies funktioniert in Chrome, aber in Firefox 3 Schritt scheint sofort ausgeführt werden, bevor der Browser Zeit hatte zu laden Die Seite. Alle Tests sind bestanden, wenn ich ein paar Sekunden warten muss, aber das würde ich lieber vermeiden.
Ist dies ein Konfigurationsproblem oder gibt es eine bessere Möglichkeit, die Tests zu schreiben, um die Kompatibilität zu verbessern?
Dies sind die Grundlagen eines Tests, in Chrome funktioniert, aber nicht in Firefox
link = driver.find_element_by_link_text(link_text)
link.click()
# Check if `driver.title` contains `title`
assert title in driver.title
ein time.sleep(2)
Einfügen nach dem Klick funktioniert es machen.
(Ich bekomme die gleiche Art von Fehler mit meinem Authentifizierungstest: Formular ausfüllen, klicken Sie auf Senden, bestätigen Benutzer wird auf der rechten Seite weitergeleitet. In Chrome geht dies, in Firefox die Vorwärts-Prüfung erfolgt gegen die Anmeldeseite . da noch der Browser nicht beendet hat, auf die neue Seite umgeleitet ich den Bericht, dass die Tests nicht bestanden, und eine Sekunde später der Browser rendert die erwartete Seite)
Danke, das hat funktioniert. –
Willkommen. Sie können 'selen.webdriver.supportimport expected_conditions als EC' tatsächlich entfernen, da ich' lambda' anstelle von 'Expected Conditions' verwendet habe, daher wurde dieser Import fälschlicherweise hinzugefügt – Andersson