首页 > 解决方案 > 如何隐藏使用 Selenium 打开或切换选项卡时弹出的窗口

问题描述

当自动化开始时,我想隐藏 Chrome 窗口直到执行结束,但每次打开或切换选项卡时都会弹出 Chrome 窗口。

标签: c#seleniumselenium-webdriverwebdriverselenium-chromedriver

解决方案


当您使用Selenium通过自动化框架执行测试时,您不能隐藏Chrome窗口,因为Selenium需要将焦点放在呈现HTML DOM的浏览器上下文上。

即使您尝试隐藏窗口,它也可能弹出,在最低级别,actions 类的行为旨在尽可能接近地模拟远程端与实际输入设备的行为,并且实施策略可能涉及例如将合成事件注入浏览器事件循环。因此,发送动作的步骤将不可避免地在特定于实现的领域中结束。但是,某些内容可观察到的效果必须在实现之间保持一致。为了适应这一点,规范要求远程端执行特定于实现的动作分派步骤,以及事件列表及其属性。这个列表并不全面;特别是输入源的默认操作可能会导致根据浏览器的实现和状态生成其他事件(例如,当焦点位于可编辑元素上时,与关键操作相关的输入事件,

此外,WebDriver API 用户生成的激活触发器需要与真实用户与浏览器交互生成的触发器无法区分。特别是,调度的事件将 isTrusted 属性设置为 true。调度这些事件的最可靠方法是在浏览器实现本身中创建它们。将特定于操作系统的输入消息发送到浏览器窗口的缺点是,正在自动化的浏览器可能无法与用户意外修改输入源状态正确隔离。使用操作系统级别的可访问性 API 的缺点是浏览器的窗口必须聚焦,因此,多个 WebDriver 实例不能并行运行。


参考

您可以在以下位置找到一些相关的讨论:


推荐阅读