我等待站点在输入元素上加载和,但是如果尝试访问该元素,则会得到StaleElementReferenceException
。
除了网站未完全加载之外,我无法想到元素过时的任何其他原因。 input_form
的onsubmit事件触发了一些Javavscript输入转换,但是测试甚至没有达到该行。
def test_german_pwned(self):
self.set_language_to_german()
self.wait_for_site_to_reload()
input_form = WebDriverWait(self.selenium, 45).until(
expected_conditions.presence_of_element_located((By.ID, "id_password"))
)
input_form.send_keys(self.PWNED_PASSWORD)
input_form.submit()
result_heading = self.selenium.find_element_by_xpath('/html/body/div[3]/h1').text
self.assertEquals(result_heading, "Du wurdest ge-pwned.")
result_body = self.selenium.find_element_by_xpath("/html/body/div[3]/h3").text
self.assertEquals(result_body, "Dein Passwort wurde wurde in einem der Hackz gefunden.")
self.check_footer()
def wait_for_site_to_reload(self):
def is_ready(driver):
return driver.execute_script("return document.readyState") == "complete"
WebDriverWait(self.selenium, 60).until(is_ready)
def set_language_to_german(self):
language_menu = Select(self.selenium.find_element_by_id("language_id"))
language_menu.select_by_visible_text('Deutsch (de)')
go_button = self.selenium.find_element_by_id("language_submit_button")
go_button.submit()