如何访问新的浏览器选项卡

Watir noob在这里。 我正在尝试连接并操作新生成的浏览器选项卡,但我对如何识别新选项卡感到有些困惑。 这就是我所拥有的:

Windows 7(32位)IE 10

Ruby 1.9.3-p392 / TDM-32.4.5.2

本地gem

watir(4.0.2 x86-mingw32)

watir-classic(3.6.0)

watir-webdriver(0.6.3)

脚本的基本要点:

require 'rubygems' require 'Watir' ie=Watir::Browser.new 

…原始浏览器选项卡上的脚本的第一部分已完成。 原始浏览器选项卡生成第二个浏览器选项卡,我需要访问该选项卡。 我已经阅读了一个响应,我需要在连接到浏览器选项卡之前将其链接到浏览器选项卡,但我很难通过href,url或title识别链接:(其中’path …’= http url)

 ie.link(:href, "path...").click 

– 未捕获exception:无法找到元素,使用{:tag_name => [“a”],:href =>“path …”

 ie.link(:url, "path...").click 

– 未捕获exception:无法使用{:tag_name => [“a”],:url =>“path …”找到元素

 ie.a(:href, "path...").click 

– 无法定位元素,使用{:tag_name => [“a”],:url =>“path …”}

但是,如果我尝试以下方法:

 ie2 = Watir::IE.attach(:title, 'New_Tab_Title') 

– “无法找到标题为New_Tab_Title的窗口”

首先,我如何指向新的url或浏览器标签? 如果我在第二个选项卡打开后执行ie.close,则第一个选项卡关闭,所以显然我无法识别这个新选项卡(即使它看起来有焦点)。

其次,我是否正确假设我需要先连接到链接/url,然后附加到浏览器标签,然后我可以继续填充字段?

最后,我可以使用一个简短的名称url,因为生成的url很长,或者我们是否需要插入整个url?

我建议在标签处理上使用watir-webdriver:

请尝试以下方法

 MEDBEDbs-iMac:~ medbedb$ irb 1.9.3p392 :001 > require 'watir-webdriver' => true 1.9.3p392 :002 > b = Watir::Browser.new :chrome => # 1.9.3p392 :003 > b.goto "http://www.w3schools.com/html/html_links.asp" => "http://www.w3schools.com/html/html_links.asp" 1.9.3p392 :004 > b.title => "HTML Links" 

这里将在新选项卡中打开一个新窗口。

 1.9.3p392 :005 > ba(:text, 'HTML links').click => [] 1.9.3p392 :006 > b.windows.count => 2 

但watir-webdriving仍在处理上一页..

 1.9.3p392 :007 > b.title => "HTML Links" 

切换到最近打开的选项卡。

 1.9.3p392 :008 > b.windows.last.use => # 1.9.3p392 :009 > b.title => "Tryit Editor v1.7" 

从这里,您可以在新选项卡中执行任何操作。

 1.9.3p392 :010 > b.windows.last.close => # 

关闭新选项卡后,watir将切换回初始选项卡。

 1.9.3p392 :011 > b.title => "HTML Links" 1.9.3p392 :012 > b.close => true 

向我们展示web-pate的代码或url,以获得更详细的结果……