【问题标题】:How to access a new browser tab如何访问新的浏览器选项卡
【发布时间】:2013-04-27 02:44:08
【问题描述】:

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

Windows 7(32 位)IE 10

Ruby 1.9.3-p392/TDM-32.4.5.2

本地宝石

watir (4.0.2 x86-mingw32)

经典经典 (3.6.0)

watir-webdriver (0.6.3)

脚本的基本要点:

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

... 原始浏览器选项卡上脚本的第一部分已完成。原始浏览器选项卡生成第二个浏览器选项卡,我需要访问它。 我在某处阅读了一个回复,我需要在附加到浏览器选项卡之前链接到它,但是我很难通过 href、url 或标题识别链接:(其中 'path...' = http 网址)

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的窗口”

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

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

最后,有没有短名称的url我可以使用,因为生成的url很长,还是我们需要插入整个url?

【问题讨论】:

    标签: ruby watir


    【解决方案1】:

    我建议在标签处理上使用 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 
    
    向我们展示网页的代码或网址以获得更详细的结果...

    【讨论】:

    • watir-classic 和 watir-webdriver api 应该是相同的(即您不需要专门使用 watir-webdriver)。
    • 过去我在使用经典 watir 时遇到过一些选项卡切换功能问题,因此选择使用 watir-webdriver..
    • 感谢 Sveatoslav 的建议,但在我需要 watir-webdriver 之后,ie10 选项卡作为新窗口打开,我似乎失去了使用我拥有的脚本在页面中导航的能力(只需要watir-webdriver)。严格使用您发布的内容,我没有得到带有 b.a(:text, 'HTML links').click 的新标签,但窗口会转到链接。也许是一个ie10问题或什么的。 @Justin Ko - 你能在 ie10 中使用 watir-classic 选择新标签吗?如果是这样,你在做什么?
    • @user2320514,上面的代码在我使用 IE8 的 watir-classic 中运行良好。不幸的是,我没有 IE10。
    • 我的理解是打开新标签与窗口是基于 IE 设置。它不受 Watir 控制。无论是新窗口还是新标签,代码都应该可以工作。
    猜你喜欢
    • 1970-01-01
    • 2018-08-29
    • 1970-01-01
    • 2011-03-13
    • 2015-12-27
    • 1970-01-01
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    相关资源
    最近更新 更多