相关疑难解决方法(0)

如何使用Capybara选择下拉选项

我正在尝试使用Capybara(2.1.0)从下拉菜单中选择一个项目.

我想按编号选择(意思是选择第二个,第三个等选项).

我用Google搜索疯狂尝试各种各样的东西,但没有运气.

我可以通过使用值来选择它:

 find("option[value='4c430d62-f1ba-474f-8e8a-4452c55ea0a8']").click
Run Code Online (Sandbox Code Playgroud)

但我不想使用那种方法b/c值会改变,这将使我的测试变得脆弱.

下拉列表的HTML是:

<td class="value">
    <select name="organizationSelect" id="organizationSelect" class="required">
     <option value="NULL">Choose...</option>
     <option value="4c430d62-f1ba-474f-8e8a-4452c55ea0a8">&nbsp;Institution1</option>
     <option value="e1a4efa7-352d-410a-957e-35c8a3b92944">&nbsp;Institution / test</option>
    </select>
</td>
Run Code Online (Sandbox Code Playgroud)

我也试过这个:

  option = find(:xpath, "//*[@id='organizationSelect']/option[2]").text  
  select(option, :from => organizationSelect)
Run Code Online (Sandbox Code Playgroud)

但它会导致此错误:

Ambiguous match, found 2 elements matching option "Institution" (Capybara::Ambiguous)
Run Code Online (Sandbox Code Playgroud)

那么如何从下拉列表中选择第一个,第二个,第三个等选项(使用Capybara)?

ruby capybara selenium-webdriver

118
推荐指数
5
解决办法
9万
查看次数

无法在Select2下拉列表中选择项目

我正在开发一个使用Select2(版本3.5.1)的应用程序.设置此下拉/自动填充字段的HTML如下所示:

<input id="mySelect" class="form-control" type="hidden">
Run Code Online (Sandbox Code Playgroud)

form-control这个片段中的类来自Bootstrap.我正在使用以下代码从JavaScript初始化此字段:

function getItemFormat(item) {
  var format = '<div>' + item.ItemName + '</div>';
  return format;
}

$(function() {
  $('#mySelect').select2({
    minimumInputLength: 5,
    placeholder: 'Search for an item',
    allowClear: true,
    ajax: {
      url: '/api/getItems',
      dataType: 'json',
      quietMillis: 250,
      data: function (term, page) {
        return {
          query: term
        };
      },
      results: function (data, page) {
        return { results: data, id: 'ItemId', text: 'ItemText' };
      }
    },
    formatResult: getItemFormat,
    dropdownCssClass: "bigdrop",
    escapeMarkup: function (m) { return m; }
  }); …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery-select2

29
推荐指数
2
解决办法
3万
查看次数

如何使用capybara DSL测试Select2元素?

我在页面上有一个Select2元素,通过ajax加载结果.希望能与水豚/ rspec的测试这个(使用捉弄人的鬼司机),但是由于选择二元素实际上开始作为一个隐藏字段,然后填充一个<ul>一旦结果进行处理,没有一个正常的select,fill_in或者choose助手会工作.

我现在拥有的是什么

  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
Run Code Online (Sandbox Code Playgroud)

上面的第4行,显然capybara可以找到元素,但值不会改变,Select2永远不会进行ajax调用.(不能fill_in在那里使用普通因为搜索字段元素没有label,id或name属性)

ruby-on-rails capybara capybara-webkit jquery-select2

18
推荐指数
4
解决办法
9124
查看次数