2016-09-20 166 views
0

我正在用黃瓜水豚。水豚黃瓜查找字段

我測試的網頁包含許多電子郵件字段,但輸入字段的ID和標籤根據您所在的頁面而改變。

我想要做的是創建一個通用的引用任何電子郵件字段,以便一個填寫方法將適用於所有頁面。

當檢查輸入字段,我可以看到他們是type='email

完整的HTML:

<input id="privatekeeper_email_email" name="privatekeeper_email.email" value="" data-validity-message="Must be a valid email address" no_optional_label="true" type="email" autocomplete="off" maxlength="254"> 

在我的塊下面你應該能夠把握什麼,我特林做:

email_fields = all('input[type="email"]') 
fill_in(email_fields[0], with: text) 
fill_in(email_fields[1], with: text) 
end 

當我運行它,我得到以下錯誤:

Capybara::ElementNotFound: Unable to find field #<Capybara::Node::Element tag="input" path="/html/body/div[3]/div/div[2]/form/div/div[2]/div[6]/div/div[2]/div/div/div/div[2]/input"> 

閱讀水豚文檔,我可以看到fill_in響應ID,名稱或標籤,所以我的參考可能無法正常工作。無論如何,我可以讓這個街區起作用嗎?

就像我說的,該ID和標籤不會在整個用戶出行一致

回答

1

既然你已經找到你需要調用#set就可以了,而不是使用fill_in

email_fields[0].set(text) 
+0

感謝湯姆的元素。我看了一下Docs,一開始看不到這個解決方案。 – Tom