试图断言隐藏值存在于ruby中

时间:2014-11-18 10:47:02

标签: ruby automation watir

我试图断言当点击具有唯一ID的按钮时标签会发生变化,但不会变得非常远。我正在使用的应用程序为一个已经链接了函数和标签的行分配一个id,到目前为止,我可以使用行id通过按钮修改,删除和更新状态,但不能断言标签更改。

我用来提取id的代码是;

@@grabelement = $browser.hidden(:name, "contentHeadingID")
@@id = @@grabelement.value
puts @@id

然后我使用下面的代码点击更新显示状态标签的按钮

form_element = $browser.hidden(:name => 'contentHeadingID', :value => "#{@@id}").parent
form_element.button(:value => 'Change').click

状态标签包含在相同的代码结构中

<input type="submit" name="publish" value="Change" class="btn btn-mini btn-secondary" style="float:right">
<input type="hidden" name="contentHeadingID" id="8" value="8">
<input type="hidden" name="published" id="Yes" value="Yes">

点击更改后,ID和值将更新为“否”,标签将从“未发布”更改为“已发布”(反之亦然)

我尝试的代码是;

if
form_element = $browser.hidden(:id => 'Yes', :value => "#{@@id}").parent
form_element.id(:value => 'Yes') == true
puts "Published status updated"
else
puts "failed"
end

任何帮助都会很棒

1 个答案:

答案 0 :(得分:0)

我认为您正在查看form_element是否包含一个隐藏元素,其中包含ID&#34; No&#34;,value&#34; No&#34;和名称&#34;已发布&#34;。您可以创建一个与该特定元素匹配的定位器,并检查它是否存在:

form_element = $browser.hidden(:id => 'Yes', :value => "#{@@id}").parent
if form_element.hidden(:id => 'No', :value => 'No', :name => 'Published').exists?
  puts "Published status updated"
else
  puts "failed"
end

请注意,您必须使用.exists?代替present?visible?,因为隐藏的元素永远不可见。

相关问题