我可以 运行 一个带有 Quarkus 的 selenium 驱动程序吗?
can I run a selenium driver with Quarkus?
我了解到 Java 中实现了 Selenium。 Quarkus Java 没有一些框架大量使用反射。我找不到任何关于使用 Quarkus 启动 selenium webdriver 的参考资料。
这已经完成了吗?
是的,它可以工作,因为我正在使用它进行一些小的改编,即你必须排除冲突的传递依赖(版本),在 Maven 项目 pom.xml
中,如下所示:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
<scope>test</scope>
<exclusions>
<exclusion>
<artifactId>byte-buddy</artifactId>
<groupId>net.bytebuddy</groupId>
</exclusion>
</exclusions>
</dependency>
然后您可以使用常规的 Selenium 功能,即
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setHeadless(true); // Using a dockerized selenium
seleniumDriver = new RemoteWebDriver(new URL("http://selenium-chrome-standalone:4444/wd/hub"), chromeOptions);
seleniumDriver.get("http://<Quarkus service URL>");
// do some things
seleniumDriver.quit();
您也可以自己启动 Selenium 驱动程序服务(而不是 dockerized 或远程服务):
ChromeDriverService service = new ChromeDriverService.Builder()
.usingDriverExecutable(new File("src/test/resources/seleniumdrivers/chromedriver_linux64_81.0.4044.138/chromedriver"))
.usingAnyFreePort()
.build();
service.start();
或者像这样在 gitlab-ci.yml
中使用 dockerized Selenium:
uitest:
stage: uitest
services:
- name: selenium/standalone-chrome
alias: selenium-chrome-standalone
有了这个,我什至在 运行 管道中的集成测试 (@QuarkusTest
)
时成功访问了 Quarkus 服务
@TestHTTPResource("/myServicePath")
URL serviceResourceUrl;
我了解到 Java 中实现了 Selenium。 Quarkus Java 没有一些框架大量使用反射。我找不到任何关于使用 Quarkus 启动 selenium webdriver 的参考资料。
这已经完成了吗?
是的,它可以工作,因为我正在使用它进行一些小的改编,即你必须排除冲突的传递依赖(版本),在 Maven 项目 pom.xml
中,如下所示:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
<scope>test</scope>
<exclusions>
<exclusion>
<artifactId>byte-buddy</artifactId>
<groupId>net.bytebuddy</groupId>
</exclusion>
</exclusions>
</dependency>
然后您可以使用常规的 Selenium 功能,即
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setHeadless(true); // Using a dockerized selenium
seleniumDriver = new RemoteWebDriver(new URL("http://selenium-chrome-standalone:4444/wd/hub"), chromeOptions);
seleniumDriver.get("http://<Quarkus service URL>");
// do some things
seleniumDriver.quit();
您也可以自己启动 Selenium 驱动程序服务(而不是 dockerized 或远程服务):
ChromeDriverService service = new ChromeDriverService.Builder()
.usingDriverExecutable(new File("src/test/resources/seleniumdrivers/chromedriver_linux64_81.0.4044.138/chromedriver"))
.usingAnyFreePort()
.build();
service.start();
或者像这样在 gitlab-ci.yml
中使用 dockerized Selenium:
uitest:
stage: uitest
services:
- name: selenium/standalone-chrome
alias: selenium-chrome-standalone
有了这个,我什至在 运行 管道中的集成测试 (@QuarkusTest
)
@TestHTTPResource("/myServicePath")
URL serviceResourceUrl;