我已经浏览了互联网但没有取得多大成功,也没有在这里查看过。
我是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
然而,没有任何反应,也没有触发错误。
非常感谢任何帮助
答案 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