Watir WebDriver 浏览器对象在打开新选项卡时丢失当前 window (FIREFOX)

Watir WebDriver browser object loses current window upon opening new tab (FIREFOX)

我想测试点击同一页面上的多个 link,然后能够切换活动标签。但是,一旦我单击带有 target=_blank 的 link,或者如果我故意打开一个新选项卡,它会将我路由到一个新选项卡并且我无法返回到旧选项卡。

注意:我使用Firefox进行测试。 Chrome 似乎工作正常并提供 window 计数 2

这是一个简单的 IRB 片段来说明我的意思:

2.2.1 :001 > require 'watir-webdriver'
 => true
2.2.1 :002 > b = Watir::Browser.new :firefox, :profile => 'default'
 => #<Watir::Browser:0x..fa8c7116334ddce82 url="about:blank" title="">
2.2.1 :003 > b.goto 'amazon.com'
 => "http://amazon.com"
2.2.1 :004 > b.a(:class => 'nav-logo-link').click(:command, :shift)
 => nil
2.2.1 :005 > b.windows.count
 => 1

我看到打开了两个选项卡,(:command, :shift) 选项是用来做的。但是如果浏览器对象只有 1 个 window,我该如何返回到第一个选项卡?

我似乎找不到遇到同样问题的人,所以可能是 Firefox 问题或我的环境问题?

运行 Mac OSX,FF 版本 44,Ruby 2.2.1,watir-webdriver 0.9.1

看看这个:

require 'watir-webdriver'
b = Watir::Browser.new
b.goto "amazon.com"
link = b.a(:class => 'nav-logo-link')
b.execute_script("return arguments[0].target = '_blank'", link)
link.click
puts b.windows.count

主要思想不是尝试以特殊方式使用link得到两个windows而是修改link以自然得到两个windows方式。