2015-04-14 87 views
0

我有這條命令正在打開一個下拉菜單並斷言列表選項存在。如果列表項不存在,我想輸出文本「列表項目不存在」,但相反,它只是等待永久並最終完全超時。Selenium Webdriver/Ruby:聲明超時

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 
+0

下拉的內膽是由ajax加載的嗎? – beornborn

+0

是的,這是阿賈克斯。我沒有任何問題與下拉菜單一起工作。只是我們在多種情況下使用相同的模板,並且在某些情況下列表選擇存在,有些情況不存在。我只想要一個簡單的方法來說 - 嘿,如果這個過濾器不在列表中,那麼很酷的結束測試並轉到下一個。 – Jen

+0

如果元素存在,則比設置錯誤的路徑;嘗試另一種方式來寫道路。例如 - 可能在'='之前和之後的空格不能存在? – beornborn

回答

0

現在就工作 - 謝謝大家指出我在正確的方向。

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

如果你想打印「列表項不存在」,那麼你應該申請異常處理在你的代碼。這樣,如果你的元素不存在然後捕獲塊打印控制檯中的消息