有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Chrome/Java/Selenium4:带有RemoteWebDriver的身份验证弹出窗口

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

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

  1. 在本地计算机上运行测试。我们使用一个组织。openqa。硒。铬。ChromeDriver类驱动Chrome
  2. 该测试在我们的CI/docker机器上运行(使用maven和selenium/chrome容器)。然后我们用一个org从maven容器中驱动Chrome(在selenium容器中)。openqa。硒。遥远的RemoteWebDriver类

这种设置一直运行良好。然而,这个弹出窗口被证明是一个相当大的挑战。我找到了选项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浏览器弹出窗口交互


共 (0) 个答案