我使用这段代码通过Id清除文本字段(在python 2.7中使用Selenium ):
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)
有人知道怎么解决这个问题吗?
发布于 2018-04-13 10:18:27
完成search.send_keys(Keys.RETURN)后,将加载新页面,search也不再可访问。您只需要重新定义这个变量。
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()是一种糟糕的做法。你应该看看隐式/显式等待
https://stackoverflow.com/questions/49814645
复制相似问题