整个页面已经进行了前端更改,看起来此问题已在此更改后开始。我要分享HTML的图像 - http://screencast.com/t/JDTai6cku。该解决方案不适用于定位器ID,也许CSS之类的另一个定位器可能有效。
这里是我正在尝试的代码,只有登录cal才能获得所需的URL
def Manage(self):
self.login()
driver=self.driver
driver.get('<>')
driver.implicitly_wait(5)
elem=driver.find_element_by_id("stage-check-all")
#This is the point when it throws the exception
elem.click()
driver.implicitly_wait(5)
这是我面临的例外 -
self.error_handler.check_response(响应) 在check_response中的文件“C:\ Python27 \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py”,第164行 提出exception_class(消息,屏幕,堆栈跟踪) StaleElementReferenceException:消息:在缓存中找不到u'Element - 可能是页面因查找而改变了'
答案 0 :(得分:1)
错误#1:
<input>
代码未使用相应的</input>
代码关闭。
您是否可以访问此HTML代码?如果是,那么你应该解决这个问题。
错误#2:
函数click()
不返回web元素。
您可以这样做:
driver.find_element_by_id("stage-check-all").click()
或者做:
elem = driver.find_element_by_id("stage-check-all")
elem.click()
但即使在解决了这些错误之后,你所描述的例外很可能会持续下去。
StaleElementReferenceException
表示在您使用driver.get(url)
加载页面后,DOM 中的内容发生了变化。因此,driver.get(url)
和driver.find_element_by_id("stage-check-all").click()
之间存在一些您没有告诉我们的内容。
发布您的代码,我或许可以回答您的问题...