ruby - 你能关闭 capybara 中所有打开的窗口吗?

标签 ruby selenium capybara

因此,当我单独运行测试时,它们运行良好。但是,当我运行我的功能(多次测试)时,我的代码失败了。
这是因为当 capybara 存在时,并不是我所有的窗口都关闭,因此我的 selenium 驱动程序不知道要使用哪个窗口。

基本上,我的测试正在打开多个窗口。发生这种情况是因为我的测试是单击打开新窗口的链接并检查新窗口中的内容。尽管我在每次测试结束时都说了 page.quit,但此函数并没有关闭所有打开的窗口(关闭事件窗口但不关闭原始窗口)。当第二个测试运行时,它使用最初创建的窗口,但是当它打开新的弹出窗口时,它使用了错误的窗口。

如何确保在每次测试期间都使用新的浏览器并且关闭之前测试的所有窗口。
我目前正在使用 page.reset!page.quit
不确定,但我可以说 session.quit 关闭所有打开的浏览器窗口吗?

最佳答案

此代码有效:

page.execute_script "window.close();"

我只是在我想关闭的窗口中执行它。

关于ruby - 你能关闭 capybara 中所有打开的窗口吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10759341/

相关文章:

ruby - 使用 Capybara 和 Selenium 如何执行 SHIFT+ 单击

ruby-on-rails - rake db :seed yields syntax error, unexpected '\n' , expecting => [closed]

java - 将鼠标悬停在元素上并等待使用 Java 的 Selenium WebDriver

ruby - watir 网络驱动程序 : Accessing elements using Indexing

java - 如何获取不一次显示所有行的表的行数?

c# - Atata selenium 网络驱动程序无法在 Angular 应用程序上通过 id 找到控件

ruby - cucumber 场景大纲中的换行符导致错误

ruby-on-rails - capybara + Selenium

sql - 不明确的 'id' 列错误 - Rails/Postgresql

ruby - cucumber :尽管定义了步骤,但未定义步骤