2017-07-27 14 views
1

我正在编写一个脚本,在该脚本中,我将验证一些元素是否存在,而其他元素是否存在。我可以使用哪个selenium命令来断言元素不存在

对于这是目前我使用的:

verify do 
    assert_include(
    @driver.find_element(
     :css, 
     "div.launchpadMain > section:nth-of-type(4) > div.launchpadCategoryBody > a:nth-of-type(2)" 
    ).text, 
    "shiftplan" 
) 
end 

示例中不存在一个元素......我想:

verify do 
    element_not_present(
    @driver.find_element(:css, "button.btn.btn-icon.pull-right > i") 
) 
end 

--->虽然这不起作用。如果元素/对象存在或不存在,我可以使用哪个命令进行验证?在这种情况下,元素/对象是垃圾桶图标。

回答

0

切换到组收藏夹find_elements(复数),停止它返回一个异常,然后断言它是空的。

verify do 
    assert_empty(
    @driver.find_elements(:css, "button.btn.btn-icon.pull-right > i").size 
) 
end 

find_elements:http://www.rubydoc.info/gems/selenium-webdriver/0.0.28/Selenium%2FWebDriver%2FFind:find_elements

+1

难道不该'assert_equal(...,0)'? –

+0

谢谢@TomLord,不熟悉那个测试框架,用于rspec'expect(...)。eq 0' /'expect(...)。to be_empty'。也许有'assert_empty'? – TomDunning

+1

[是的,有](https://apidock.com/ruby/MiniTest/Assertions/assert_empty)。实际上,这可能会更好,因为它会提供更有用的失败信息。 –

相关问题