Ich möchte die Website mit Selen anmelden. Diese Seite hat einen Link (Mitglieder Login) und wenn ich auf diesen Link klicke, erscheint ein Popup-Fenster.In Selen, wie man sich im Popup-Fenster mit Python in die Website einloggt?
Die Website-URL ist http://affiliates.888.com/
ich den Code schrieb wie folgt.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
eight88 = webdriver.Chrome()
eight88.get("http://affiliates.888.com/")
assert "Earn Real Money" in eight88.title
loginForm = eight88.find_element_by_class_name("hide-under-480").click()
# so far popup appears.
eight88.switch_to_alert()
eight88.find_element_by_id("userName").send_keys("username")
eight88.find_element_by_id("password").send_keys("password")
Wenn ich dieses Skript ausführen, tritt NoSuchElementException
auf.
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"id","selector":"userName"}
(Session info: chrome=59.0.3071.115)
(Driver info: chromedriver=2.30.477691 (6ee44a7247c639c0703f291d320bdf05c1531b57),platform=Linux 4.4.0-83-generic x86_64)
Ich weiß nicht, wie Sie auf das Popup gehen und dort Element finden.
Wie kann ich diese Website auf Popup einloggen.
Sie könnten ein paar Dutzend einer Sekunde für das Popup warten müssen erscheinen und/oder prüfen Sie, ob es tauchte und dann weiter mit dem Füllen Dinge mit Ihrem Benutzernamen/Passwort aus. – Anthon
Danke für Ihre Antwort. Ich habe Code wie acht88.implicitly_wait (10) hinzugefügt, aber dieselbe Ausnahme ist aufgetreten. Wie kann ich damit umgehen? –
Dafür können Sie ExplicitWait verwenden, aber wenn das JavaScript so gestaltet ist, dass es die neuen Felder nicht in die ursprüngliche Seitenquelle aufnimmt, würde das nicht funktionieren. –