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

时间:2016-04-07 20:13:34

标签: ruby watir watir-webdriver

我想测试点击同一页面上的多个链接,但之后可以切换活动标签。但是,一旦我点击了一个带有target = _blank的链接,或者我是故意打开一个新标签,它就会将我引导到一个新选项卡,我无法返回旧选项卡。

注意:我正在使用Firefox进行测试。 Chrome确实可以正常运行,窗口数量为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)选项是打算做的..但如果浏览器对象只有一个窗口,如何返回第一个标签?

似乎我找不到任何人遇到同样的问题所以也许它可能是firefox问题或我的环境?

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

1 个答案:

答案 0 :(得分: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

主要思想不是尝试以特殊方式使用链接来获取两个窗口,而是修改链接以自然方式获得两个窗口。