无论如何,我可以使用ruby中的 selenium webdriver 来验证元素是否不存在吗?
如果我这样做
webdriver.find_element(:xpath, element)
但如果元素不存在则抛出错误。我需要确保元素不存在而不会抛出错误。
我的意思是,是否有类似assert_not
或assert_element_not_present
的方法?
答案 0 :(得分:4)
你可以在Ruby中做到这两种方式。一个是遵循@ Saifur的解决方案,看起来像这样:
# Returns true if no element is found
#
webdriver.find_elements(:xpath, element).empty?
另一种方法是拯救例外:
# Returns false if no element is found
#
webdriver.find_element(:xpath, element) rescue false
我建议Saifur的解决方案。
答案 1 :(得分:1)
您可以使用find_elements进行计数。 find_element方法将返回NoSuchElement(或类似的),因为找不到元素并且是一个合法的异常。因此,测试不会达到断言。另一方面,如果没有找到,则find_elements
将返回0,这是最简单的检查方法。对不起,我对Ruby不是很了解。但等价C#看起来如下
IList<IWebElement> elements = driver.FindElements(By.XPath("Your Xpath "));
Assert.IsTrue(elements.Count != 0);