Geo*_*lin 5 selenium webdriver
页面包含一些数据(包含少量行的表).有"刷新"按钮可以重新加载和重绘页面上的一些元素,而无需重新加载静态数据(ajax).
我正在尝试为该页面创建正确的测试,但有时会收到StaleElementReferenceException.
我的代码(python):
from selenium import webdriver
browser=webdriver.Firefox()
browser.get('http://mytisite')
browser.implicitly_wait(10)
browser.find_element_by_id('start').click()
while browser.find_element_by_id('status').text!='Done':
browser.find_element_by_id('refresh').click()
for row in browser.find_elements_by_class_name('datarow'):
if not is_correct(row.text):
print "incorrect"
time.sleep(10)
Run Code Online (Sandbox Code Playgroud)
5次迭代中的1次失败就行"if not is_correct(row.text)":
selenium.common.exceptions.StaleElementReferenceException:
Message: u'Element not found in the cache - perhaps the page
has changed since it was looked up' ; Stacktrace: Method
fxdriver.cache.getElementAt threw an error in
resource://fxdriver/modules/web_element_cache.js
Run Code Online (Sandbox Code Playgroud)
主要问题:页面已包含以前的数据,所以我在ajax刷新和webdriver的元素查询之间进行竞争find_elements_by_class_name('datarow').
我怎样才能正确解决ajax refresh和webdriver之间的竞争?谢谢.
在以下两种情况之一中会引发过时元素引用异常,第一种情况比第二种情况更常见:
请浏览以下硒文档以获取更多信息
| 归档时间: |
|
| 查看次数: |
13231 次 |
| 最近记录: |