7

我需要在 Java 中使用 selenium chrome 驱动程序进行测试。但不应打开 chrome 窗口。假设这是一个产品,不应打开任何窗口。

我也看过这个; 是否可以在 Selenium RC 中隐藏浏览器? 但对我来说没有解决方案。测试应该是独立于操作系统的,我已经尝试过 HtmlUnitDriver 进行测试而不打开任何窗口,但它有一些问题。当有通过 id 查找组件时,它可能无法通过 id 查找组件。一些服务器可能会根据浏览器发送组件 id,我不知道应该使用什么 id 来测试。

因此,我正在尝试使用 chrome 驱动程序。

有没有办法在不打开 chrome 窗口的情况下使用 chromedriver,或者在 Java 中不使用 Selenium 打开任何窗口的情况下进行测试?

谢谢!

4

5 回答 5

7

使用PhantomJS但如果需要在 chromedriver 中运行它们并且你有资源,这个博客有一个很好的方法来运行无头硒和 chrome。要求您下载以下...

  • 虚拟盒子
  • 流浪汉
  • 节点JS

如果您计划在未来实施Jenkins或任何其他 CI,我强烈建议您使用 PhantomJS。

于 2014-01-28T21:00:58.393 回答
6

在 selenium web 驱动程序中有无头模式。所以在无头模式下,您可以在不打开网络浏览器的情况下进行自动化。你也可以在无 gui 系统中部署你的应用程序

    ChromeOptions options = new ChromeOptions();
    // setting headless mode to true.. so there isn't any ui
    options.setHeadless(true);

    // Create a new instance of the Chrome driver
    WebDriver driver = new ChromeDriver(options);
于 2018-02-28T20:07:45.027 回答
2

GhostDriver 和 PhantomJS应该让你做你想做的事。

于 2014-01-28T17:05:52.820 回答
1

我喜欢这篇文章

基本上你需要在 pom 中添加 PhantomJS 依赖(我喜欢使用 maven 进行依赖管理):

<dependency>
    <groupId>com.github.detro.ghostdriver</groupId>
    <artifactId>phantomjsdriver</artifactId>
    <version>1.1.0</version>
</dependency>

并运行代码

    System.setProperty( "phantomjs.binary.path", "c:\\path\\to\\phantomjs-1.9.8-windows\\phantomjs.exe" );
    WebDriver driver = new PhantomJSDriver();
    driver.get("http://www.google.com");
    driver.quit();

它适用于我的版本:

  • 幻影JS 1.9.8
  • PhantomJS 驱动程序 1.1.0
  • 硒 2.44.0
于 2014-11-15T08:32:25.600 回答
0

使用 Java,您可以使用 JSOUP 库,然后使用 selenium 来检查文档。

Document doc = Jsoup.connect("PUT THE LINK")
                  .userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36")
                  .get();

然后,使用硒,您可以制作类似:doc.getElementByClassName等的东西。

于 2021-02-11T10:37:37.837 回答