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

时间:2013-04-25 18:48:50

标签: ruby watir

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

Windows 7(32位)IE 10

Ruby 1.9.3-p392 / TDM-32.4.5.2

本地宝石

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

- 未捕获的异常:无法找到元素,使用{:tag_name => [“a”],:href =>“path ...”

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

- 未捕获的异常:无法找到元素,使用{: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的窗口”

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

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

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

1 个答案:

答案 0 :(得分:8)

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

请尝试以下

MEDBEDbs-iMac:~ medbedb$ irb
1.9.3p392 :001 > require 'watir-webdriver'
 => true 
1.9.3p392 :002 > b = Watir::Browser.new :chrome
 => #<Watir::Browser:0x..f87e94a30e87e1e60 url="about:blank" title="about:blank"> 
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 > b.a(: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
 => #<Watir::Window:0x..fd949289f2b083062 located=true> 
1.9.3p392 :009 > b.title
 => "Tryit Editor v1.7" 

从这里,您可以在新标签页中执行任何操作。

1.9.3p392 :010 > b.windows.last.close
 => #<Watir::Window:0x..fd949289f2b083062 located=true> 

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

1.9.3p392 :011 > b.title
 => "HTML Links" 
1.9.3p392 :012 > b.close
 => true 
向我们展示web-pate的代码或网址,以获得更详细的结果......