小编Abe*_*ard的帖子

关闭自身的子浏览器窗口显然会破坏Watir-webdriver到父窗口的链接?

在Chrome中,使用watir-webdriver,我单击一个打开子浏览器窗口的按钮.

我做:

@browser.window(title: 'Child').use
Run Code Online (Sandbox Code Playgroud)

我成功地与该子窗口中的各种项目进行交互.

很快,在这个窗口中完成了一个动作,该站点认为这是首先打开窗口的"点".例如,

@browser.button(title: 'Button').click
Run Code Online (Sandbox Code Playgroud)

执行此操作时,子窗口将自行关闭.

但是,当我告诉watir-webdriver返回使用父窗口时,我收到一个错误:

@browser.window(title: 'Parent').use # => results in
# Selenium::WebDriver::Error::NoSuchWindowError: emptyScript execution failed; 
# The window could not be found
Run Code Online (Sandbox Code Playgroud)

我认为这是一个Selenium/Watir-webdriver错误的原因是因为以下代码有效:

@browser.window(title: 'Child').use
# ... Now I do various things in the child window that do NOT
# ... cause it to close itself. They all work as expected.
# ...
puts @browser.window(title: 'Parent').present? #=>true
@browser.window(title: 'Child').close
puts @browser.window(title: 'Parent').present? #=>true
@browser.window(title: 'Parent').use # => No error thrown
Run Code Online (Sandbox Code Playgroud)

唯一的区别是导致子窗口自行关闭的操作.

我注意到watirspec代码没有自动关闭窗口的测试用例,所以这可能是watir-webdriver中windows代码的一个被忽视的方面.

好的,所以这里是你 …

ruby webdriver watir-webdriver selenium-chromedriver

5
推荐指数
1
解决办法
1382
查看次数