【问题标题】:can I run a selenium driver with Quarkus?我可以使用 Quarkus 运行 selenium 驱动程序吗?
【发布时间】:2020-10-24 22:50:19
【问题描述】:

我了解 Selenium 是用 Java 实现的。 Quarkus 是 Java,没有一些框架密集使用反射。我找不到任何人使用 Quarkus 启动 selenium webdriver 的任何参考资料。

这已经完成了吗?

【问题讨论】:

  • 我没有看到任何人在 Quarkus char 或 Quarkus GitHub 中提到这一点

标签: selenium quarkus


【解决方案1】:

是的,因为我正在使用它进行一些小的修改,即您必须在 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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-11
    • 2013-06-17
    • 2016-09-04
    • 1970-01-01
    • 1970-01-01
    • 2020-08-30
    • 2015-11-01
    相关资源
    最近更新 更多