Selenium Webdriver/Ruby:断言超时

Selenium Webdriver/Ruby:断言超时,ruby,selenium,selenium-webdriver,Ruby,Selenium,Selenium Webdriver,我有一行代码,它点击了一个下拉菜单,并断言存在一个列表选项。如果列表项不存在,我想输出文本列表项not present,但它只是永远等待,最终完全超时 assert{ displayed?(:xpath, "//li[text() = 'Clinical Review Feedback Type']") } 谢谢你的帮助 我想也许我已经知道了: begin @driver.find_element(:xpath, "//*[text() = 'Clinical

我有一行代码,它点击了一个下拉菜单,并断言存在一个列表选项。如果列表项不存在,我想输出文本列表项not present,但它只是永远等待,最终完全超时

    assert{ displayed?(:xpath, "//li[text() = 'Clinical Review Feedback Type']") }
谢谢你的帮助

我想也许我已经知道了:

    begin
        @driver.find_element(:xpath, "//*[text() = 'Clinical Review Feedback Type']").click  
    rescue => e
        p e.message 
        puts "Filter not found in list"
    end

如果要打印不存在的列表项,则应在代码中应用异常处理。通过这种方式,如果您的元素不存在,则在控制台中捕获块打印消息

现在可以工作了-感谢大家为我指出了正确的方向

begin
    @driver.find_element(:xpath, "//*[text() = 'Clinical Review Feedback Type']").click  
rescue => e
    p e.message 
    puts "Filter not found in list"
end

下拉列表是否由ajax加载?是的,它是ajax。我在使用下拉列表时没有任何问题。只是我们在多种情况下使用相同的模板,在某些情况下,列表选择存在,而在某些情况下不存在。我只想用一种简单的方式说-嘿,如果这个过滤器不在列表中,那么就结束测试,继续下一个测试;尝试另一种写入路径的方法。例如,“=”前后的空格可能不存在?这很好,所以我相信这不是错误的路径@driver.find_元素:xpath,//*[text='Clinical Review Feedback Type']。显然,另一个元素包含该文本。也许是李。给我看看你的html结构