小编Mic*_*ata的帖子

使用硒2检查陈旧元素?

使用selenium 2,有没有办法测试元素是否陈旧?

假设我启动从一个页面到另一个页面的转换(A - > B).然后我选择元素X并测试它.假设元素X同时存在于A和B中.

间歇性地,在页面转换发生之前从A中选择X,并且在转到B之后不进行测试,引发StaleElementReferenceException.检查这种情况很容易:

try:
  visit_B()
  element = driver.find_element_by_id('X')  # Whoops, we're still on A
  element.click() 
except StaleElementReferenceException:
  element = driver.find_element_by_id('X')  # Now we're on B
  element.click()
Run Code Online (Sandbox Code Playgroud)

但我宁愿这样做:

element = driver.find_element_by_id('X') # Get the elment on A
visit_B()
WebDriverWait(element, 2).until(lambda element: is_stale(element))
element = driver.find_element_by_id('X') # Get element on B
Run Code Online (Sandbox Code Playgroud)

python selenium-webdriver

5
推荐指数
1
解决办法
2576
查看次数

标签 统计

python ×1

selenium-webdriver ×1