使用黄瓜和SitePrism编写测试时,页面上有以下HTML .
<select name="product_status_id" id="product-status" class="pull-right">
<option value="">Select a Status</option>
<option value="1">Active Product</option>
<option value="2">Inactive Product</option>
</select>目前,我为这个下拉列表设置的元素选择器是.
element :status_active, '#product-status'我首先将测试中的第一个值设置为"Active Product“.
And(/^I select the status of Active$/) do
@page.product.status_active.select("Active Product")
end然后验证保存的值是"Active Product“的状态。
And(/^the product values entered should match those which were saved$/) do
@page.product.status_active.value.should == "1"
end 但是,如果要切换这些值,"Active Product"为value="2","Inactive Product"为value="1",则测试将不再验证字段是否设置为"Active Product"值。
是否有一个实例可以用来检查选项标记之间的内容?
<option>want to select content here</option> 当我写以下文章时..。
@page.product.status_active.text.should == “Active Product”以下是..。
"Select a Status Active Product Inactive Product”因此,在这里,.text方法似乎不是一个足够的解决方案。
如何在选项标签之间选择内容?
发布于 2014-10-15 19:17:59
当选择一个选项时,它应该具有如下所选的属性:<option value="1" selected>Active Product</option>,您可以使用它作为选择器。
因此,您可以找到如下所选的选项:@page.product.status_active.find('option[selected]')
因此,要验证所选选项的文本,请执行以下操作:@page.product.status_active.find('option[selected]').text.should == “Active Product”
与此相关的是,我发现自己经常这样做,我在测试套件中添加了以下内容:class Capybara::Node::Element def selected_option self.find('option[selected]') end end
这就为水豚元素添加了一个selected_option。有了这个,你就可以做这个@page.product.status_active.selected_option.text.should == “Active Product”
发布于 2014-10-16 20:06:18
如果我正确地理解了您,您希望能够仅使用选项标签之间的文本从下拉列表中选择某些内容。
一旦您为您的选择器找到css,您可以使用文本匹配器来找到您需要的选项。它也使一些规格,可以很容易地阅读和维护。
这里它使用的是水豚:
Page.find(‘#Product选项’,:text => 'Active Product').click
https://stackoverflow.com/questions/26386583
复制相似问题