Ruby Watir如果那么声明

时间:2014-05-14 11:38:40

标签: ruby conditional watir

我已经浏览了互联网但没有取得多大成功,也没有在这里查看过。

我是ruby watir和mini测试的新手,但是我试图编写一些自动化来检查选择列表中的值下拉列表,如果找到一个值,则将其更改为第二个值。如果它在下次运行时找到第二个值,我希望它改变第一个值。

我创建了变量;

$Title1 = "Dr"
$Title2 = "Mr"

我尝试运行的代码试图使用if,then,else系列语句;

#Title
if $browser.select_list(id: "title") == $Title2 then
   $browser.select_list(:id, "title").select($Title1)
else
if $browser.select_list(id: "title") == $Title1 then
$browser.select_list(:id, "title").select($Title2)
end

然而,没有任何反应,也没有触发错误。

非常感谢任何帮助

1 个答案:

答案 0 :(得分:2)

<强>问题

问题是if语句正在比较苹果和橙子(即两种不同的东西)。您正在将来自$browser.select_list(id: "title")的Watir :: SelectList与来自$Title2的字符串进行比较。

对于Watir元素,==用于检查页面上的两个元素是否相同。该元素永远不会等于字符串。

<强>解决方案

您实际想要与Title2进行比较的是选择列表的选定选项。 Watir选择列表有一个selected?方法来检查它。

您可以执行以下操作:

if $browser.select_list(id: "title").selected?($Title2)
  $browser.select_list(:id, "title").select($Title1)
else
  $browser.select_list(:id, "title").select($Title2)
end
相关问题