在缓存中找不到元素 - 执行while语句

时间:2016-01-14 06:08:42

标签: python selenium-webdriver automated-tests

您好,我正在尝试执行一段时间:

        while edit_button.is_displayed():
           self.click_edit_button()
           self.click_delete_trainer_button()
           alert = self.driver.switch_to_alert()
           alert.accept()
           time.sleep(5)
           self.driver.refresh()

但我总是收到此错误:

StaleElementReferenceException: Message: Element not found in the cache - perhaps the page has changed since it was looked up

我在python中看到有必要在发生此错误时刷新页面,但我在上面尝试过它并没有用

任何想法?

1 个答案:

答案 0 :(得分:2)

驱动程序正在丢失edit_button。这可能是由于在while循环中执行点击或可能是刷新。这里更好的方法是使用findelement而不是edit_button。像下面的java(你可以使用任何定位器,我只是使用xpath给线)

 driver.findElement(By.xpath("//path of edit button")).isDisplayed();

in edit_button.is_displayed():用python中的上面一个替换edit_button.is_displayed()。

由于