我试图在将html附加到我的表单后进行一些测试运行,该html是使用materialize制作的。我将它放入我的rails应用程序,但现在,我收到Unable to find select box "purchase_customer_gender" (Capybara::ElementNotFound)
错误。
在我的步骤定义中,我有
When(/^I select "(.*?)" in "(.*?)"$/) do |value, field|
select(value, from: field)
end
并且在我的功能中,但也尝试使用purchase[customer_gender]
,即使标签为'Gender'
也是如此。
And I select "M" in "purchase_customer_gender"
我已经尝试了以下内容:
When(/^I select "(.*?)" in "(.*?)"$/) do |value, field|
within(:css, 'div.input.select.purchase_customer_gender') do
select(value, from: field)
end
end
select(value, from: field, visible: false)
向我投了(Selenium::WebDriver::Error::ElementNotVisibleError)
page.select(value, from: field)
...最后是我的HTML
<%= simple_form_for :purchase, url: process_payment_url do |f|%>
...
<div class="input-field col s6">
<%= f.input :customer_gender, label: "Gender", collection: ['M', 'F'] , required: true, label_html: { class: "validate" }%>
</div>
...
<% end %>
在我的浏览器中呈现
<div class="input-field col s6">
<div class="input select required purchase_customer_gender">
<select class="select required" name="purchase[customer_gender]" id="purchase_customer_gender">
<option value="M">M</option>
<option value="F">F</option>
</select>
</div>
</div>
我使用capybara-webkit,cucumber-rails,selenium-webdriver进行测试,使用simple_form进行处理。
提前谢谢。
答案 0 :(得分:2)
我猜测实体化实际上已隐藏了您的选择框,并在屏幕上用&lt; ul&gt;构建的内容替换了它。和&lt; li&gt; s以启用样式等。您需要查看组成&#34;选择&#34;的实际元素。在真正的浏览器中,你的Capybara行动基于此。根据具体化here的例子,它很可能像
find('div.select-wrapper input', text: 'prompt of the select').click #open the dropdown
find('div.select-wrapper li', text: 'M').click #select the option wanted