Browser.back不起作用

时间:2017-01-20 06:36:19

标签: ruby watir watin

使用watir,我已编写脚本来检查多个链接是否定向到右页,如下所示。

Links= ["Link", "Link1"]

Links.each do |LinkValue|        
  @browser.link(:text => LinkValue).wait_until_present.click
  fail unless @browser.text.include?(LinkValue)
  @browser.back   
end

我正在尝试的是:

maintaining Linktext in an array
iterating with each linktext
verify
navigate to the previous page to start verifying with next linktext.

但脚本无效。它没有在第一个值之后执行,也没有导航回来。

2 个答案:

答案 0 :(得分:0)

以下代码为我工作

require 'watir'
browser = Watir::Browser.new(:firefox) # :chrome also work
browser.goto 'https://www.google.com/'
browser.link(text: 'Gmail').wait_until_present.click
sleep(10)
browser.back
sleep(10)

答案 1 :(得分:0)

您正在调用Kernel::Fail,如果条件不满足,将引发异常。

在这种情况下,看起来您希望目标页面包含在原始页面上单击的相同链接文本。如果不是这样,那么脚本将引发异常并终止。

这是一个人为的“工作”示例(只有“有效”,因为链接文本存在于原始页面和目标页面上):

require 'watir'

b = Watir::Browser.new :chrome
b.goto "http://www.iana.org/domains/reserved"

links = ["Overview", "Root Zone Management"]

links.each do |link|
  b.link(:text => link).click
  fail unless b.text.include? link
  b.back
end

b.close

一些观察结果:

  • 我不会在这里使用fail。您应该调查像Minitestrspec这样的测试框架,它们具有验证应用程序行为的断言方法。
  • 在ruby中,变量(和方法和符号)应该在snake_case