Testing with a selenium driver in Java without ope

2019-01-24 11:54发布

I need to test with selenium chrome driver in Java. But chrome window should't be opened. Assume this a product and no window should be opened.

I've also looked at this one ; Is it possible to hide the browser in Selenium RC? But no solution for me. The testing should be operating system independent and I've tried HtmlUnitDriver for testing without opening any window but it has some problem. When there is finding components by id, it may not find the component by id. Some servers may send the component id according to browser and I can't know what id I should use to test.

Because of that I'm trying to use chrome driver.

Is there a way to use chromedriver without opening chrome window or another way to test without opening any window with Selenium in Java?

Thank!

4条回答
我欲成王,谁敢阻挡
2楼-- · 2019-01-24 12:15

Go with PhantomJS but if running them in chromedriver is required and you have the resources, this blog has a good recipe on running headless selenium with chrome. Requiring you to download the following...

  • VirtualBox
  • Vagrant
  • NodeJS

If you plan to implement Jenkins or any other CI in the future, I strongly suggest going with PhantomJS though.

查看更多
男人必须洒脱
3楼-- · 2019-01-24 12:28

In selenium web driver there is headless mode. so in headless mode you can do the automation without opening the web browser. and also you can deploy your application in none gui system

    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);
查看更多
Lonely孤独者°
4楼-- · 2019-01-24 12:32

GhostDriver and PhantomJS should let you do what you want.

查看更多
乱世女痞
5楼-- · 2019-01-24 12:37

I like this article.

Basically you need to add PhantomJS dependency in pom (I like maven for dependency management):

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

And run code

    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();

It worked for me with versions:

  • PhantomJS 1.9.8
  • PhantomJS driver 1.1.0
  • Selenium 2.44.0
查看更多
登录 后发表回答