Rya*_*Mes 6 ruby selenium capybara ruby-on-rails-4 selectize.js
我试图解决我认为应该工作的测试中的错误.我很确定这是一个选择或水豚的错误,但我无法弄清楚为什么.
我已经进入了水豚的来源,一切看起来都像是应该的.我不确定如何前进.
为了测试这个错误,我已经尽可能地将bug删除到一个小测试应用程序中.请参阅下面的设置
bugs/show.html.erb
<select id="select-repo" class="repositories selectized" placeholder="Pick a repository...">
</select>
<select id="dropdown1">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
</select>
<select id="dropdown2">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
</select>
bug_spec.rb
feature 'bug' do
it "spec setup", js: true do
visit bug_path
find('div.selectize-input input', match: :first).set('exercism.io')
select 'Four', from: 'dropdown1' # this is not getting selected
select 'Four', from: 'dropdown2'
sleep 2
expect(page).to have_select('dropdown1', selected: 'Four') # testing that dropdown1 is being selected
end
end
# note that the javascript to initialize the selectize drop down is in application.js if you want to look at it go to the github application.
Run Code Online (Sandbox Code Playgroud)
上面的测试访问具有ajax选择性下拉列表和两个正常选择元素的页面.它试图将文本 - 'exercism.io' - 放入选择下拉(通常我有另一行实际上模仿按下回车键,但错误发生在那条线上)然后它继续设置值dropdown1和dropdown2.我已经完成了测试js: true并sleep 2让ajax正常工作,因此您可以看到测试运行时实际发生的情况.
问题是它无法设置dropdown1的值.当您运行测试并查看发生了什么时,您可以看到它找到要设置的值,但实际上并未设置它.它只是移动到下一个选择.
另一个奇怪的事情是如果我改变测试如下,测试通过.所以我很确定它与选择下拉菜单的设置有关.
bug_spec.rb
feature 'bug' do
it "spec setup", js: true do
visit bug_path
select 'Four', from: 'dropdown1' # this is not getting selected
select 'Four', from: 'dropdown2'
find('div.selectize-input input', match: :first).set('exercism.io')
sleep 2
expect(page).to have_select('dropdown1', selected: 'Four') # testing that dropdown1 is being selected
end
end
Run Code Online (Sandbox Code Playgroud)
我在一个可以在github上找到的演示应用程序中复制了这个bug .
对不起,如果这很长,我不确定怎么说这个问题.
请注意,此示例已被删除.在我的实际代码中,我使用了人们提供的代码来使用水豚和一起选择.
| 归档时间: |
|
| 查看次数: |
569 次 |
| 最近记录: |