硒元素过时,即使等待

时间:2019-04-09 08:45:23

标签: python selenium firefox

我等待站点在输入元素上加载,但是如果尝试访问该元素,则会得到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()

0 个答案:

没有答案