Chrome/Java/Selenium4:带有 RemoteWebDriver

问题描述

我想在受身份验证弹出窗口保护的测试环境中执行一些 Java/Selenium4 测试自动化。这不是警报,而是 Chrome 弹出窗口:screenshot

在我们的框架中,我们有两个选择:

  1. 您在本地机器上运行测试。我们使用 org.openqa.selenium.chrome.ChromeDriver 类来驱动 Chrome。
  2. 测试在我们的 CI/docker 机器上运行(使用 maven 和 selenium/chrome 容器)。然后我们使用 org.openqa.selenium.remote.RemoteWebDriver 类从 maven 容器驱动 Chrome(在 selenium 容器中)。

此设置一直运行良好。然而,这个弹出窗口被证明是一个相当大的挑战。我找到了选项 1 的解决方案:

((HasAuthentication)driver).register(UsernameAndPassword.of("username","password"));

这不适用于选项 2,因为显然 RemoteWebDriver 类没有实现 HasAuthentication 接口:

java.lang.ClassCastException: class org.openqa.selenium.remote.RemoteWebDriver cannot be cast to class org.openqa.selenium.HasAuthentication (org.openqa.selenium.remote.RemoteWebDriver and org.openqa.selenium.HasAuthentication are in unnamed module of loader 'app')

这意味着这个解决方案不会在我们的 CI 设置上运行,现在我被卡住了。我看到人们使用自定义 Chrome 扩展程序作为解决方法,但我希望有一个更简单/更好的解决方案......

如何使用 RemoteWebDriver Chrome 驱动程序类与浏览器弹出窗口、Selenium4/Java 交互?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)