簡體   English   中英

如何通過其值從分組選擇中選擇元素?

[英]How do I select an element from the grouped selection by its value?

我遇到的問題(我已嘗試過互聯網上的所有解決方案)是如何從帶有水豚的分組選擇中選擇一個元素。

這是下拉列表:

<%= f.grouped_collection_select(:subcategory_id, Category.order(:name), :subcategories, :name, :id, :name, {}, { :class=> "form-control" }) %>

這是我嘗試選擇它的方法之一。

select("Ortodoncista", from: 'provider[subcategory_id]')

錯誤

Unable to find option "Ortodoncista" (Capybara::ElementNotFound)

這個答案適用於我Capybara:按值選擇選項而不是 @d_rail 選擇文本

首先創建一個幫助器。 我把這個幫助器放在spec/support/utilities.rb

def select_by_value(id, value)
  option_xpath = "//*[@id='#{id}']/option[@value='#{value}']"
  option = find(:xpath, option_xpath).text
  select(option, :from => id)
end

然后使用它:

select_by_value "select_id", "select_option"

在我的例子中,select標簽的id為user_category ,我想選擇的選項是Musician 所以我的榜樣是

select_by_value "user_category", "Musician"

由於我更熟悉CSS選擇,我會使用:

這樣可以在集合的子項(Categories)上找到與其值相對應的option元素(對應於option_key_method (:id)的結果):

 page.find('select#your-selectbox-id option[value="your-value"]')

這將返回由您的值找到的所需的capybara元素,而不是通過選項的文本搜索。 然后你可以做任何你想做的事。 例如: .text.click

或者(只是要記住)這樣,如果你想從你的selecbox中選擇一個給定的選項與capybara:

select 'Option Label', :from => 'Selectbox Label Text'

在您的情況下,將是您的集合 (類別)的子項上的option_value_method (:name)的結果。

Obs: 分組選擇的參考

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM