c# - 如何隐藏使用 Selenium 打开或切换选项卡时弹出的窗口
问题描述
当自动化开始时,我想隐藏 Chrome 窗口直到执行结束,但每次打开或切换选项卡时都会弹出 Chrome 窗口。
解决方案
当您使用Selenium通过自动化框架执行测试时,您不能隐藏Chrome窗口,因为Selenium需要将焦点放在呈现HTML DOM的浏览器上下文上。
即使您尝试隐藏窗口,它也可能弹出,在最低级别,actions
类的行为旨在尽可能接近地模拟远程端与实际输入设备的行为,并且实施策略可能涉及例如将合成事件注入浏览器事件循环。因此,发送动作的步骤将不可避免地在特定于实现的领域中结束。但是,某些内容可观察到的效果必须在实现之间保持一致。为了适应这一点,规范要求远程端执行特定于实现的动作分派步骤,以及事件列表及其属性。这个列表并不全面;特别是输入源的默认操作可能会导致根据浏览器的实现和状态生成其他事件(例如,当焦点位于可编辑元素上时,与关键操作相关的输入事件,
此外,WebDriver API 用户生成的激活触发器需要与真实用户与浏览器交互生成的触发器无法区分。特别是,调度的事件将 isTrusted 属性设置为 true。调度这些事件的最可靠方法是在浏览器实现本身中创建它们。将特定于操作系统的输入消息发送到浏览器窗口的缺点是,正在自动化的浏览器可能无法与用户意外修改输入源状态正确隔离。使用操作系统级别的可访问性 API 的缺点是浏览器的窗口必须聚焦,因此,多个 WebDriver 实例不能并行运行。
参考
您可以在以下位置找到一些相关的讨论:
推荐阅读
- python - 通过请求调用 API 时处理 CAPTCHA
- mongodb - 将对象数组转换为数组数组
- laravel-5 - Eloquent 和 Laravel 中的多个 Where 子句
- vue.js - 如何将数据从 vuex 状态获取到本地数据进行操作
- python - 如何从 cmd 执行一组默认功能
- java - 如何修复“无法将 JsonNull 强制转换为 JsonObject”
- google-cloud-platform - 数据流上的 grpc StatusRuntimeException
- python - 在 Python 中设置 Logger 类的问题
- python - 我想删除列表中的 x 但告诉我:x 不在列表中
- angular - 一张表格三页。如何在它们之间传递状态?