2016-02-23 39 views
1

,如果我在水豚寫代碼如下水豚 - 如果,否則

if find("tr", :text => "No data available in table") 
    ...function... 
end 

這是行不通的,但如果我寫

if find("tr", :text => "No data available in table") do 
    ...function... 
end 

它的工作原理。

以同樣的方式,如果我寫

if find("tr", :text => "No data available in table") 
    ...function... 
else 
    ...function... 
end 

測試不工作,它給了我,說一個警告:「語法錯誤,意想不到的keyword_end」。我如何解決這個問題?

+0

水豚的'find'沒有使用任何傳遞給它的塊,所以你的第一個陳述很奇怪。您在第二條語句中顯示的代碼是有效的。更好地展現更多上下文 –

+0

其實這是我的錯誤,因爲我真的可能有一些「結束」干擾某處。現在我可以說,第一個聲明是對我有用的聲明,因此是第三聲明。 –

回答

1

#find拋出一個異常,如果它沒有找到一個元素,因此使用它在if/else語句沒有任何意義 - 你想要的是has_css?它不會返回一個布爾

if has_css?("tr", text: "whatever") 
    ...... 
else 
    ..... 
end 

注:如果您想縮短(或延長)時間,您可以通過等待:選項has_css?has_css?等待元素出現 - 如wait: 0如果您知道該頁面已經完全加載並且只是想立即檢查