当前位置: 首页 > 知识库问答 >
问题:

Ruby中的Selenium WebDriver:防止测试结束时关闭浏览器窗口

万俟招
2023-03-14

我似乎遇到了与其他人完全相反的问题--无论最终结果如何,我在Ruby中的Selenium测试都将在测试结束时关闭浏览器窗口。通过或失败,它将始终关闭浏览器。我想阻止这一切。

上下文:

以前,我使用IntelliJ IDEA在Java中编写测试代码。在这种情况下,Selenium测试的浏览器窗口不会关闭,除非您使用driver.quit()。这实际上非常有用,因为它意味着如果测试失败,浏览器窗口将保持打开-这意味着我可以查看它在浏览器中的位置,并帮助找出失败的原因。这对于测试编写也很有用,因为这意味着我基本上可以从我停止的地方开始编写下一个块,而不必在另一个浏览器中手动保持并行选项卡以获得给定屏幕中的下一组选择器。

我在使用RubyMine的Ruby中发现,当测试以任何身份结束时,浏览器都会关闭。这有点问题。虽然从技术上来说,我可以对失败进行扫描,但这意味着我将更难追溯失败的原因(浏览器上的后退按钮,键入字段以确定是否是UI中的怪癖导致的,等等)。当然,屏幕会占用硬盘空间。;)

  • IDE:RubyMine
  • 宝石:Selenium-WebDriver
  • 浏览器:Chrome,使用ChromeDriver。(在Ruby中,这只需要使用WebDriver)
  • OS:OSX

不是无头的,不使用其他框架/测试环境。它实际上是几行设置,然后在一个沼泽标准的。rb中按RubyMine中的run按钮。

摘要:

我无法在这里或其他地方找到Ruby在线上的任何问题,特别是关于RubyMine中的Selenium测试在测试结束时关闭窗口的问题。在本例中,“test end”指的是成功(到达。rb的结尾)或失败(在本例中是追踪)。我宁愿车窗一直开着,直到它撞上司机。退出队伍。我有什么办法能安排好这件事吗?

非常感谢。我希望这不是多余的。我也希望这能在将来帮助其他测试人员:)

共有1个答案

钱建本
2023-03-14

您可以使用:desired_capabilities来设置此标志:

caps = Selenium::WebDriver::Remote::Capabilities.chrome("goog:chromeOptions" => {detach: true})
driver = Selenium::WebDriver.for :chrome, desired_capabilities: caps

请注意,旧的示例将使用“ChromeOptions”,但对于较新的Chrome版本,它将需要是“goog:ChromeOptions”。

 类似资料:
  • 问题内容: 我尝试使用以下代码在关闭浏览器窗口时收到警报: 它可以工作,但是如果页面包含一个超链接,则单击该超链接会引发相同的警报。仅在关闭浏览器窗口时才需要显示警报,而在单击超链接时则不需要。 问题答案: 保持您的代码不变,并使用jQuery处理链接:

  • 当用户试图关闭页面时(单击浏览器窗口上的X按钮或离开页面),我需要发送一条消息,如“确定吗?”并执行一些操作。 我正在使用离子3,这是我的配置 cli包:(/home/ubuntu/workspace/mHS/node_modules) 全球套餐: 本地套餐: 系统: 杂项: 我尝试了不同的方法,但没有成功: 1-离子生命周期钩 2-主机侦听器 } 3-超文本标记语言 我错过了什么?

  • 问题内容: 有谁知道我可以使用JavaScript检查浏览器窗口何时关闭并弹出确认对话框询问用户是否确认退出浏览器还是改变主意的任何方式? 问题答案: window.onbeforeunload = function (e) { var e = e || window.event;

  • 我已经从错误消息中删除了ip地址和主机名。

  • 问题内容: 我尝试了许多方法来通过jQuery或JavaScript检测浏览器关闭事件。但是,不幸的是,我无法检测到关闭。该和方法也没有工作。 如何检测的窗口,或事件? 问题答案: 您是否尝试过此代码? 第二个功能是可选的,以避免在单击和元素时提示。

  • 我尝试了许多方法通过jQuery或JavaScript检测浏览器关闭事件。但是,不幸的是,我一直未能检测到接近。和方法也不起作用。 如何在卸载前检测窗口、或