我正在使用Watir WebDriver和Firefox/test/unit。爲什麼我的「包含?」正則表達式不行?
下面的代碼工作:
assert(@browser.text.include?("Company employees"))
爲什麼下面的代碼不能正常工作?
assert(@browser.text.include?(/Company employees/))
我正在使用Watir WebDriver和Firefox/test/unit。爲什麼我的「包含?」正則表達式不行?
下面的代碼工作:
assert(@browser.text.include?("Company employees"))
爲什麼下面的代碼不能正常工作?
assert(@browser.text.include?(/Company employees/))
String#include?方法只接受字符串或字符。它不接受正則表達式。
您可以使用以下主張對正則表達式之一:如果您使用assert_match
assert(@browser.text.match(/Company employees/))
assert(@browser.text =~ /Company employees/)
assert(@browser.text[/Company employees/])
不過,我認爲它是更清晰(閱讀代碼和錯誤消息):
assert_match(/Company employees/, @browser.text)
嘗試斷言(@ browser.text.include?(「/ Company employees /」))
/應該由前面的\來逃脫。這適用於我的包括?用正則表達式測試 –
這三個建議都可以使用。我同意第三個建議更清楚。強制失敗是打印出頁面上所有文本的簡單方法:) – OldGrantonian
建議通常是檢查特定元素的文本而不是整個頁面。它減少了誤報的機率,並保存了打印整個頁面的錯誤信息。 –
同意。對於懶惰,我在頁面上使用了6個斷言的「文本」。當我將每個「文本」更改爲6個特定元素中的每一個時,斷言僅佔用原始時間的一小部分。 – OldGrantonian