我正在尝试使用 Selenium 和相关驱动程序编写适用于 Chrome、Edge 和 Firefox 的自动化测试。但是,当我在 Firefox 上运行测试时,新的浏览器窗口会打开所需的页面,然后Bitwarden 页面在单独的选项卡中。这个单独的选项卡的打开似乎会影响我的测试的执行方式。有人知道如何阻止它打开吗?
我尝试过的:
- 从独立浏览器中卸载了扩展程序,但它还是会在自动实例中重新出现。我的 IT 部门说他们创建了一些系统来确保它保持安装状态。我该如何让此选项卡不打开?
- 从两个本地存储的配置文件中清除了 addons.json 文件。我想避免的是:
- 每次运行测试时都退出此选项卡。
- 弄乱注册表。如果可以的话,我有点想避免激怒 IT 部门。
有人知道如何解决这个问题吗?
答案1
我找到了一个解决方案。在我打开浏览器驱动程序和测试之间,我放置了以下代码(Python)以将当前聚焦的选项卡切换到正确的选项卡:
windows = self.driver.window_handles
if (len(windows) > 1):
self.driver.switch_to.window(windows[0])
如果选项卡列表的长度大于 1,则 Bitwarden 选项卡将打开,然后我会切换到第一个选项卡,也就是我想要测试的目标选项卡。它并没有真正解决问题的根源(这实际上不是一个容易的解决方案),但它确实将焦点返回到正确的选项卡,这样 Firefox 上就不会再出现与选项卡相关的错误。