当找不到 xpath 时,我尝试使用特定消息引发 ValueError。
@step('Click save')
def step_impl(context):
click_save =
context.browser.find_element_by_xpath("//button[@class='save_button']")
if not click_save:
raise ValueError('Save button is not found')
click_save.click()
理想情况下,如果未找到保存按钮,我希望显示 raise ValueError...但是当未找到 click_save xpath 时,代码将永远不会到达“if”语句。我只会收到一个错误...等等等等 xpath 未找到或无论它是什么。
当在一组测试中您可能有类似的 xpath 并且我想确切地知道哪一个失败时,我试图更具体地执行此操作。
这可能吗?
最佳答案
Selenium 无法找到该元素并引发错误。您可以检查元素的长度计数,如果它为零,则会引发错误。
尝试下面的代码。
if len(browser.find_elements_by_xpath("//button[@class='save_button']"))==0:
raise ValueError('Save button is not found')
else:
click_save = browser.find_element_by_xpath("//button[@class='save_button']")
click_save.click()
关于Python/Selenium 尝试在未找到的元素上使用 "if"语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57205772/