使用Watir我无法通过测试来验证用户名字段中的文本

时间:2016-01-12 18:36:57

标签: ruby watir watir-webdriver

我首先会预见到我对Watir& amp; Ruby和我在我的裤子座位上飞行,用谷歌来解决问题。

所以我的问题是我要去网站工作并输入用户名和密码。之后,我试图理想地验证用户名和密码是否存在并正确输入。现在密码被隐藏了所以我认为id处理一旦我更高级但用户名字段无论我尝试过什么我总是得到一个失败的测试" browser.text.include?& #34;好像它应该工作,我尝试了不同类型的等待和暂停,这似乎不是问题。

我已经看过测试运行几次,它似乎不是任何类型的暂停问题。现在我正在尝试查看Div内部的输入,所以我不确定这是否可能是它失败的原因。

最后,我为watir和ruby教程找到的大部分资源看起来都很旧,许多早期的例子都不起作用。如果有任何来自用户的建议将非常感激。

#require needed gems for the test case
require 'rubygems'
require 'watir-webdriver'
require 'rspec'
require "watir-webdriver/wait"

#Open a browswer and wait 60 seconds
browser = Watir::Browser.new :ie
browser.driver.manage.timeouts.implicit_wait = 60 #60 seconds

#Enter a Username
browser.text_field(:id => 'username').when_present.set("superuser")

#Enter a Password
browser.text_field(:id => 'password').when_present.set("password")

#If username of superuser is not found display the test passes.  If  username of superuser is found then the test failed
puts " Actual Results:"
browser.text_field(text: 'superuser').wait_until_present
if browser.text.include? 'superuser'
puts " Test Passed! Username & Password have not been cleared since the user has never clicked the clear button Actual Results match Expected Results. "
else
puts " Test Failed! Username has been cleared even though the clear button was never pressed. "
end

1 个答案:

答案 0 :(得分:1)

文本字段,特别是input元素,没有文本节点。因此,在文本字段上使用text方法时,您将获得一个空字符串。同样,调用browser.text时也没有文字。

您在文本字段中看到的文字实际上是value属性的值。您必须检查该属性。例如,您可以使用value方法:

browser.text_field(text: 'superuser').value.include? 'superuser'