首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Watir切换窗口正在超时。

使用Watir切换窗口正在超时。
EN

Stack Overflow用户
提问于 2022-07-19 02:11:19
回答 1查看 43关注 0票数 0

我希望在同一个Watir会话中在两个浏览器窗口之间自动工作。但是,下面的代码超时后,我才能看到一个新的浏览器选项卡打开。

代码语言:javascript
运行
复制
b = = Watir::Browser.new :chrome
b.goto 'www.google.com'
b.switch_window

/Users/andyhuynh/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/watir-7.1.0/lib/watir/wait.rb:41:in `until': timed out after 30 seconds, waiting for true condition on #<Watir::Browser:0x135ba826800b0080 url="https://www.google.com/?gws_rd=ssl" title="Google"> (Watir::Wait::TimeoutError)
        from /Users/andyhuynh/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/watir-7.1.0/lib/watir/wait.rb:110:in `wait_until'
        from /Users/andyhuynh/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/watir-7.1.0/lib/watir/has_window.rb:63:in `switch_window'
        from /Users/andyhuynh/Code/ilounge_voting/ilounge_voting.rb:68:in `<top (required)>'
        from <internal:/Users/andyhuynh/.asdf/installs/ruby/3.0.0/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
        from <internal:/Users/andyhuynh/.asdf/installs/ruby/3.0.0/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
        from /Users/andyhuynh/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/irb-1.4.1/lib/irb/init.rb:395:in `block in load_modules'
        from /Users/andyhuynh/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/irb-1.4.1/lib/irb/init.rb:393:in `each'
        from /Users/andyhuynh/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/irb-1.4.1/lib/irb/init.rb:393:in `load_modules'
        from /Users/andyhuynh/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/irb-1.4.1/lib/irb/init.rb:21:in `setup'
        from /Users/andyhuynh/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/irb-1.4.1/lib/irb.rb:412:in `start'
        from /Users/andyhuynh/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/irb-1.4.1/exe/irb:11:in `<top (required)>'
        from /Users/andyhuynh/.asdf/installs/ruby/3.0.0/bin/irb:23:in `load'
        from /Users/andyhuynh/.asdf/installs/ruby/3.0.0/bin/irb:23:in `<main>'

我使用的是Watir版本7.0.0,Ruby3.0.0p0,Chrome是103.0.5060.114。我最初的想法是,这要么是我的Ruby版本,要么是Chrome版本。我试着降级到不同的版本,但没有起到任何作用。我没有主意了,任何线索都很感激。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-19 05:43:51

当您打开b.goto 'www.google.com'控件时,该窗口已经在该窗口中,因此您不必切换,您应该打开另一个窗口来进行切换。我在下面的程序中使用b.execute_script("window.open('https://spiritualgab.freeforums.net')")打开了另一个窗口。

尝尝这个。

代码语言:javascript
运行
复制
require 'watir'
b = Watir::Browser.new :chrome
b.goto 'www.google.com'
b.execute_script("window.open('https://spiritualgab.freeforums.net')")
b.window(title: 'Home | Spiritualgab').use
b.element(xpath: "//*[@id='navigation-menu']/ul/li[1]/a").click
b.original_window.use
b.text_field(name:'q').set 'raja'

偶然地,如果您不知道窗口的标题,只需执行p b.title就会为您打印标题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73030387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档