如何使用seleniumwebdriver和chromedriver的无头浏览器

时间:2017-01-12 14:33:59

标签: javascript node.js selenium-webdriver selenium-chromedriver

这是我的代码,我希望实现相同的功能,但使用隐藏的浏览器窗口。

var webdriver = require('selenium-webdriver');
var chrome = require('selenium-webdriver/chrome');
var path = require('chromedriver').path;

var service = new chrome.ServiceBuilder(path).build();
chrome.setDefaultService(service);

var driver = new webdriver.Builder()
.withCapabilities(webdriver.Capabilities.chrome())
.build();
driver.get('https://pk.linkedin.com/in/mahad-waseem-263a06ba');
driver.getTitle().then(function(title){
console.log(title);
});

1 个答案:

答案 0 :(得分:1)

如果您在进行开发的同一环境中运行浏览器,但我不知道如何执行此操作,但有三种方法可以让您隔离浏览器:

  1. 设置第二台PC

  2. 设置虚拟机

  3. 使用the Selenium Docker images在Docker容器中运行浏览器

  4. 这三个解决方案有一个共同点:它们在与开发环境隔离的环境中运行浏览器并且无头,因此您无需在桌面上打开和关闭浏览器窗口。< / p>

    在这三个中,我更喜欢第三个,原因有两个:

    1. 不需要额外的硬件
    2. 不需要安装操作系统或配置其他PC
    3. 允许选择要测试的浏览器
    4. 具有相当大的灵活性

      最后一点可能是最有趣的:您可能熟悉Selenium Grid,这是一个可以并行运行针对不同浏览器的测试的系统。我一直对它感兴趣,但是直到最近它看起来像是一个太大的项目来设置它 - 你需要一个网格主机,以及你想要测试的浏览器的单独主机。好了,多亏了Docker,可以在一台主机上完成所有操作。我目前正在使用Selenium Grid Hub Docker image同时测试Chrome和Firefox,所有这一切都来自我的开发机器。