我正在使用 Watir 和 Chromedriver 在某些网站上自动提交表单。我必须登录并提交多个表格。问题是,当我单击“提交”按钮时,页面会自动关闭,因此当我转到('next_url')时,我收到此错误:
/Users/jackz/.rvm/gems/ruby-1.9.3-p327/gems/selenium-webdriver-2.27.2/lib/selenium/webdriver/remote/response.rb:52:在`assert_ok'中: “auto_id”不引用打开的选项卡(Selenium::WebDriver::Error::UnknownError)
Watir 实例仍然存在,但窗口已关闭。我可以每次创建一个新实例,但每次都必须重新登录,这会花费更长的时间。
那么我怎样才能:
在同一个 Watir 实例中打开一个新窗口
或
提交后禁止窗口关闭
require 'watir-webdriver'
@b = Watir::Browser.new :chrome
@b.goto(URL)
@b.buttons.first.click
#this is when the window closes
@b.goto(NEW_URL)
#then I get an error
谢谢
最佳答案
我找到了自己问题的答案。我可以使用 javascript 在 Watir 中打开一个新窗口:
b = Watir::Browser.new
b.execute_script("window.open()")
b.windows.last.use
这将打开一个窗口,我可以在其中填写表单,然后当窗口自动关闭时,我仍然可以使用原始窗口。可能不是最好的解决方案,但它目前有效。
关于ruby - 禁止 Watir 中的自动关闭窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14146916/