2015-10-25 101 views
0

我需要測試一個網頁,其中jQuery/AngularJS添加一些數據元素的屬性,在這種情況下,'價值',這是默認不可見選擇。我使用水豚與Poltergeist。我想驗證元素值,但標準的方式失敗:查找JQuery/AngularJS添加數據到一個元素與水豚

expect(find(:xpath, "//input[@type='text']").value).to eq('3') 

OR

find("//input[@type='text']/@value='3'") 

元素看起來像這樣(的值出現在屬性):

​​

在Chrome控制檯中,我可以選擇它

$('input[type="text"]').data('value', '3') 

但在水豚中沒有數據方法。

回答

0

JS會影響value屬性而不是value屬性,這意味着你不能使用xpath查詢它(你只能查詢在頁面加載/解析時存在的值屬性) - 如果它是隻有以'Never'作爲placeholder/id/name/label的輸入,或者您可以使用父元素來限定它,因此它是唯一匹配的輸入,則以下內容應該可以工作(如果需要作用域,則使用找到的父元素替換頁面)

expect(page).to have_field('Never', with: '3')