使用 Watir 我无法进行测试来验证用户名字段中的文本
Using Watir I can't get a test to verify text in a username field
我会首先预先警告我是 Watir 和 Ruby 的新手,我有点凭感觉使用 google 来解决问题。
所以我的问题是我要去一个工作站点并输入用户名和密码。之后,我试图理想地验证用户名和密码是否存在并正确输入。现在密码被隐藏了,所以我认为 id 可以处理,一旦我更高级但是用户名字段无论我尝试了什么我总是得到一个失败的测试 "browser.text.include?" 似乎它应该工作并且我尝试了不同的各种等待和暂停,这似乎不是问题所在。
我已经看了几次测试运行,它看起来不像是任何类型的暂停问题。现在我正在尝试查看 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
文本字段,特别是 input
元素,没有文本节点。因此,在文本字段上使用 text
方法时,您将得到一个空字符串。同样,调用browser.text
.
时也不会出现文本
您在文本字段中看到的文本实际上是 value
属性的值。您必须改为检查该属性。例如,您可以使用 value
方法:
browser.text_field(text: 'superuser').value.include? 'superuser'
我会首先预先警告我是 Watir 和 Ruby 的新手,我有点凭感觉使用 google 来解决问题。
所以我的问题是我要去一个工作站点并输入用户名和密码。之后,我试图理想地验证用户名和密码是否存在并正确输入。现在密码被隐藏了,所以我认为 id 可以处理,一旦我更高级但是用户名字段无论我尝试了什么我总是得到一个失败的测试 "browser.text.include?" 似乎它应该工作并且我尝试了不同的各种等待和暂停,这似乎不是问题所在。
我已经看了几次测试运行,它看起来不像是任何类型的暂停问题。现在我正在尝试查看 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
文本字段,特别是 input
元素,没有文本节点。因此,在文本字段上使用 text
方法时,您将得到一个空字符串。同样,调用browser.text
.
您在文本字段中看到的文本实际上是 value
属性的值。您必须改为检查该属性。例如,您可以使用 value
方法:
browser.text_field(text: 'superuser').value.include? 'superuser'