执行 Selenium WebDriver脚本抛出 StaleElementReferenceException错误的原因



from selenium import webdriver
import time
browser = webdriver.Chrome()
browser.get('https://www.taobao.com')
input = browser.find_element_by_id('q')
input.send_keys('iphone')
time.sleep(1)
input.clear()
input.send_keys('ipad')
button = browser.find_element_by_class_name('btn-search')
button.click()
input.clear()
input2 = browser.find_element_by_id('q')
input2.send_keys('huaweiP10')
button2 = browser.find_element_by_class_name('icon-btn-search')
button2.click()



在执行脚本时,有时候引用一些元素对象会抛出如下异常

org.openqa.selenium.StaleElementReferenceException: stale element reference: element is not attached to the page document

按字面表达的意思大概是,所引用的元素已过时,不再依附于当前页面。通常情况下,这是因为页面进行了刷新或跳转,解决方法是,重新使用 findElement 或 findElements 方法进行元素定位即可。

上一篇:背包问题


下一篇:深度解密阿里巴巴技术利器:数据订阅