我在通过 ajax 加载结果的页面上有一个Select2元素。想用 capybara/rspec 测试这个(使用 poltergeist 驱动程序),但由于 Select2 元素实际上是作为一个隐藏字段开始的,然后填充<ul>
一次结果被处理,所有的 normalselect
或fill_in
helperschoose
都不会工作。
我现在拥有的是
it "should have a search field for events" do
click_link "Select an Event" # this works as expected
within('.select2-container') do # works
find('.select2-search input').set(event.description[0,5]) # won't work!
find(:xpath, "li[text()='#{event.description}']").click
end
click_button "Search"
page.should have_content("Displaying all 2 photos")
end
上面的第 4 行,显然 capybara 可以找到元素,但值没有改变,并且 Select2 永远不会进行 ajax 调用。(不能fill_in
在那里正常使用,因为搜索字段元素没有标签、id 或名称属性)