我有一个按钮
100.0 - random1
100.0 - random2
位于表格的tr中。
我编写了一个测试按钮状态的函数,只需使用:
(100 - random1)/100.0
(100 - random2)/100.0
但是,此块不适用于表格行中的按钮。我也尝试按按钮ID添加检查,它也没有用。如何在不将表id作为参数的情况下实现它? (因为我不想在功能中写表id)
使用id时,错误为:
<button type="button" id="saveListing" class="button small save-button" data-bind="enable: saveEnabled, click: save"><i class="fa fa-save"></i> Save</button>
或使用文字:
And(/^...the button "(.*?)" on "(.*?)" page is disabled$/) do |button_name, page|
button_id = ConfigHelper.get_button_info(button_name, page)['id']
button_class = ConfigHelper.get_button_info(button_name, page)['class']
if !button_id.nil?
find_button(button_id)[:disabled].should eq 'true'
elsif !button_class.nil?
find(button_class)[:disabled].should eq 'true'
else
button_text = ConfigHelper.get_button_info(button_name, page)['text']
find('button', text: button_text)[:disabled].should eq "true"
end
end
感谢。
答案 0 :(得分:1)
saveListing
是按钮的 ID ,而不是类。在 css 选择器中,点用于类,哈希符号用于 ID
因此,您应该使用#saveListing
或.save-button
,而不是.saveListing
。这就是你的第一次匹配失败的原因。
all
代替find
,如下所示:
all('button', text: button_text).each do |button|
button[:disabled].should eq "true"
end
答案 1 :(得分:1)
Capybaras find_button根本不搜索css类,所以除非你覆盖了find_button我不知道为什么你会因为使用id而得到错误。 find_button将按按钮的id,value,text content或title属性进行搜索,并且还支持禁用的搜索过滤器。更稳定(如果按钮的状态由于JS而改变)这些检查的版本将是
find_button('saveListing', disabled: true).should be #Note: no # in front of the id here since its not a css selector
find_button('button text', disabled: true).should be
这些会更稳定,因为他们会利用Capybaras等待行为来找到禁用的按钮,而之前写入的方式会立即找到按钮并且如果它们尚未被禁用则会出错。