gpt4 book ai didi

ruby - 如何处理具有自定义 html 属性的多选列表?

转载 作者:数据小太阳 更新时间:2023-10-29 07:56:28 24 4
gpt4 key购买 nike

<select class="business_group" multiple="multiple" name="SelectedBusinessGroups">
<option value="Partners">Partners</option>
<option value="Press">Press</option>
<option value="ProductToolbox">Product Toolbox</option>
<option selected="selected" value="Promotional">Promotional</option>
<option value="Sponsors">Sponsors</option>
</select>

因为名为 :selected 的属性意味着该选项被点击。我想检查是否从选项列表中选择了“促销”。我该怎么做?

我试过了

assert @browser.option(:text => "Promotional").attribute_value("selected").exists? == true

但它不起作用。

最佳答案

您有几个选项来检查所选的选项。

使用选项#selected?

选项有一个内置的方法来告诉您它们是否被选中 - 参见 Option#selected? .

@browser.option(:text => "Promotional").selected?
#=> true

@browser.option(:text => "Press").selected?
#=> false

使用 Select#selected?

选择列表有一个内置方法来检查选项是否被选中 - Select#selected? .请注意,这只会根据文本检查选项。

ddl = @browser.select(:class => 'business_group')

ddl.selected?('Promotional')
#=> true

ddl.selected?('Press')
#=> false

使用选择#selected_options

Select#selected_options方法将返回所选选项的集合。您遍历此集合以查看是否包含您想要的选项。这使您可以通过文本以外的方式检查选项。

selected = @browser.select(:class => 'business_group').selected_options
selected.any?{ |o| o.text == 'Promotional' }
#=> true

使用元素#attribute_value

如果属性存在,attribute_value 方法将以字符串形式返回属性值。如果该属性不存在,则返回 nil。

#Compare the attribute value
@browser.option(:text => "Promotional").attribute_value("selected") == 'true'
#=> true

#Compare the attribute value presence
@browser.option(:text => "Promotional").attribute_value("selected").nil? == false
#=> true

关于ruby - 如何处理具有自定义 html 属性的多选列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16173915/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com