繁体   English   中英

如何使用SitePrism gem从下拉菜单中选择一个选项并测试是否已选择该选项

[英]How to use SitePrism gem to select an option from a dropdown menu and test that the option has been selected

我已经定义了一个SitePrism页面,该页面具有一个带有选项的select标记(在页面上创建一个下拉菜单)。

在我的黄瓜步骤中,我试图对其进行设置,以使其从下拉菜单中选择一个选项,但似乎无法做到这一点。

这是我的设置:

class ViewBudgetPage < SitePrism::Page
  set_url '/budget{/id}'

   element :date,            "input[name='cost_date']"
   element :description,     "input[name='cost_desc']"
   element :price,           "input[name='cost_price']"
   elements :categories,     "select[id='categories_list']"
   element :add_cost_button, "button[type='submit']"

在我的步骤中,我有:

When "I fill in the form to create a new cost" do
    @current_budget_page.date.set '1-Aug-2010'
    @current_budget_page.description.set 'some description'
    @current_budget_page.price.set '10'
    @current_budget_page.categories.select "Donations"
end

我的页面看起来像:

<div class='form-group'>
    <select class="form-control" id="categories_list"name='model_number'><option value='unselected'> Please select a category </option>   
<% @budget_wrapper.all_categories.each do |cat_name| %>
<option value='<%=cat_name%>'><%=cat_name%></option>
      <%end%>
     </select>
</div>

问题是在步骤中的元素上调用“选择”不起作用! 它抱怨:ArgumentError异常:参数数量错误(1表示0)

调用不带参数的select不会抱怨

@current_budget_page.categories.select

,但这不是我想要的。 我认为这是列表中的第一个元素(默认值)。

我想在我的步骤中说:从页面的下拉菜单中选择一个特定的元素。

有什么帮助吗?

谢谢。

编辑:我的道歉:蒂姆·莫里(Tim Mulry)是正确的,我误解了这个问题。 要选择比第一物品,看到他在评论的答案。

原版的:

您需要执行以下两个步骤:

  1. 找到您要查找的<option>元素(在本例中为第一个)。 您可以在<select>节点上使用#first来执行此操作,因此: @current_budget_page.categories.first('option')
  2. 选择它。 您可以#select_option使用[ #select_option ] [1]。

因此,您想要的代码是:

@current_budget_page.categories.first('option').select_option

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM