如何捕获click()失败?

时间:2016-02-13 17:33:42

标签: python selenium

有没有办法让selenium确定click()函数是否正确执行?

假设网页上有一个带有提交按钮的表单。我使用selenium点击提交按钮。我如何确定click()是否正确发生?现在我的代码看起来像这样:

try:
  button = driver.find_element_by_id('submit_button_id')
  button.click()
except NoSuchElementException:
  print('No such button found.')

# determine if the `click()` function actually worked.
try:
  driver.find_element_by_id(
    'new_id_that_only_occurs_after_button_click'
  )
except NoSuchElementException:
  # code to retry button click

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

没有什么比按照您期望的方式检查点击页面更改更好的了。那你正在做的是对的。我要做的唯一改进就是将“发现”更改为“等待”,例如in the example shown here

WebDriverWait(driver, 10)
    .until(
       EC.presence_of_element_located(
           (By.ID,
            'new_id_that_only_occurs_after_button_click'))

这样测试更可靠(如果对点击操作的响应需要一点时间,测试不会失败)。