首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python2.7中使用Selenium的StaleElementReferenceException错误

问Python2.7中使用Selenium的StaleElementReferenceException错误
EN

Stack Overflow用户
提问于 2018-04-13 10:15:51
回答 1查看 501关注 0票数 1

我使用这段代码通过Id清除文本字段(在python 2.7中使用Selenium ):

代码语言:javascript
复制
from selenium.webdriver.common.keys import Keys

browser = webdriver.Chrome():
browser.get('https://www.google.com')
search = browser.find_element_by_id('lst-ib')
search.send_keys('Python 2')
search.send_keys(Keys.RETURN)
time.sleep(6)
search.clear()
time.sleep(2)
browser.close()

它给了我一个错误:

StaleElementReferenceException跟踪(最近一次调用) in () StaleElementReferenceException: chrome=65.0.3325.181元素未附加到页面文档(会话信息: chrome=65.0.3325.181) (驱动程序信息: chromedriver=2.37.544315 (730aa6a6a5fdba159ac9f4c1e8cbc59bf1b5ce12b7),platform=Windows NT 10.0.16299 x86_64)

有人知道怎么解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2018-04-13 10:18:27

完成search.send_keys(Keys.RETURN)后,将加载新页面,search也不再可访问。您只需要重新定义这个变量。

代码语言:javascript
复制
from selenium.webdriver.common.keys import Keys

browser = webdriver.Chrome():
browser.get('https://www.google.com')
search = browser.find_element_by_id('lst-ib')
search.send_keys('Python 2')
search.send_keys(Keys.RETURN)
time.sleep(6)
search = browser.find_element_by_id('lst-ib')
search.clear()
time.sleep(2)
browser.close()

还请注意,使用time.sleep()是一种糟糕的做法。你应该看看隐式/显式等待

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49814645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档