2017-07-18 73 views
0

我正在使用與Cucumber和Watir合作的頁面對象gem開始我的第一步。我現在的步驟定義文件具有類似如下的命令:頁面對象gem - 如何實現wait_until_present

@browser.text_field(:name => 'Username').wait_until_present.set username 

使用頁面對象,我測試的Watir(對不起),用下面的代碼:

class HomePage 
    include PageObject 
    text_field(:user_name, name: 'username').wait_until_present 
} 
end 

home_page = HomePage.new 
home_page.user_name = 'Mickey' 

,因爲我得到了這不起作用'沒有方法錯誤'

有點谷歌搜索顯示我可以做到這一點。但它使用when_visible代替wait_until_present

class HomePage 
    include PageObject 
    text_field(:user_name){ 
     text_field_element(:name => 'username').when_visible 
} 
end 

home_page = HomePage.new 
home_page.user_name = 'Mickey' 

什麼是最好的使用wait_until或when_visible與頁面對象的?如果可能的話,我不想在我的步驟文件中輸入很多睡眠。

回答

2

假設你使用的是最新版本的Watir的,你可以簡單地做:

class HomePage 
    include PageObject 
    text_field(:user_name, name: 'username') 
end 

home_page = HomePage.new 
home_page.user_name = 'Mickey' 

換句話說,你並不需要顯式地等待文本字段是設置它之前存在。

Watir進行了許多改進,包括在設置元素之前自動等待元素存在。因此,您應該很少(從不?)需要撥打wait_until_present

+0

謝謝賈斯汀,我今天早上在車上聽着一個有你身份的Watir播客。我正在使用最新的Watir 6.我將開始相信Watir,並拿出一些wait_until_present,看看我有多相處。 – albatross