ich eine Situation, wo ich ein paar Sachen mit Selen WebDriver bin zu testen. Beim Versuch, sich bei OneDrive anzumelden, ignoriert der Treiber alle Wartezeiten und ich erhalte "Element nicht sichtbar Fehler", speziell für die Seite, auf der Sie das Passwort eingeben. Dies geschieht nur in dieser Situation, und der Rest der Instanzen, in denen ich ziemlich denselben Code verwende, um den Anmeldevorgang auf mehreren Seiten auszuführen, funktioniert gut.WebDriver wartet auf bestimmten Seiten zu ignorieren
Dies ist der Code, um den fehlerhaften Code
def selenium_onedrive(loading_done_event, selenium, user, psw):
loading_done_event.wait()
login = selenium.find_elements_by_name('loginfmt')[0]
login.send_keys(user)
next_step = selenium.find_element_by_id('idSIButton9')
next_step.click()
password = WebDriverWait(selenium, 10).until(
# EC.presence_of_element_located((By.NAME, "passwd"))
EC.element_to_be_clickable((By.ID, "i0118"))
)
**password.send_keys(psw)**
# password.submit()
next_step = selenium.find_element_by_id('idSIButton9')
next_step.click()
Die fette Linie ist die, wo der Fehler ocurs entspricht. Es besagt, dass das Element nicht gefunden wurde, aber die Wartezeiten (auch implizite) ignoriert werden.
Und dies ist ein Beispiel für einen Login-Code, der
def selenium_gdrive(loading_done_event, selenium, user, psw):
loading_done_event.wait()
login = selenium.find_elements_by_name('Email')[0]
login.send_keys(user)
selenium.find_elements_by_name('signIn')[0].click()
password = WebDriverWait(selenium, 10).until(
EC.presence_of_element_located((By.NAME, "Passwd"))
)
password.send_keys(psw)
password.submit()
# now we will be navigated to the consent page
consent_accept_button = WebDriverWait(selenium, 10).until(
EC.element_to_be_clickable((By.ID, "submit_approve_access"))
)
consent_accept_button.click()
Weitere Informationen arbeitet, den Code mit Firefox-Treiber ausgeführt wird. Wenn ich die Chrome-Version verwende, läuft es gut, aber es ist instabil und wird zufällig "Verbindung beendet remoted"
Welche Linie dafür verantwortlich ist? –
der Fehler wird in dieser Zeile "password.send_keys (psw)" es heißt, dass das Element nicht gefunden werden kann. und es ignoriert die Wartezeiten vollständig, auch wenn ich implicitly_wait() verwende – inigo