Watir 菜鸟在这里。我正在尝试连接并操作新生成的浏览器选项卡,但对如何识别新选项卡有点困惑。这是我所拥有的:
Windows 7(32 位)IE 10
ruby 1.9.3-p392/TDM-32.4.5.2
本地 gem
watir (4.0.2 x86-mingw32)
watir-经典 (3.6.0)
watir-webdriver (0.6.3)
脚本的基本要点:
require 'rubygems'
require 'Watir'
ie=Watir::Browser.new
... 原始浏览器选项卡上的脚本的第一部分已完成。原始浏览器选项卡生成第二个浏览器选项卡,我需要访问它。 我在某个地方读到一个响应,我需要在附加到它之前链接到浏览器选项卡,但我很难通过 href、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 的窗口”
首先,如何指向新的 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
=> #<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
向我们展示网页代码或网址以获得更详细的结果...
关于ruby - 如何访问新的浏览器选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16222446/