我在这里使用maven。在这里是我的硒代码:
DesiredCapabilities capb = DesiredCapabilities.chrome();
capb.setCapability("chrome.binary","/Applications/Google Chrome.app/Contents/MacOS/Google Chrome");
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless","--disable-gpu", "--no-sandbox","--remote-debugging-port=9222");
capb.setCapability(ChromeOptions.CAPABILITY, options);
System.setProperty("webdriver.chrome.driver","/Users/nitinkumar/TEST/chromedriver");
try{
ChromeDriver driver = new ChromeDriver(capb);
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver.get("https://qa.cmnetwork.co");
driver.quit();
}
catch(Exception e)
{
e.printStackTrace();
}
当我运行" MVN测试"时,它以GUI模式启动了Chrome。但是它应该以无头模式打开。我有 Chrome Vesrion 59.0 , OS X Yosemite(10.10.5(, Chromedriver 2.30 and strong> and selenium 3.4.0
它不会在GUI模式下打开。仅将打开Chrome Launcher图标。这是一种预期的行为。
您必须删除参数--remote-debugging-port
。这将阻止发射的无头铬。因此,脚本将永远不会前进。您将获得chrome not reachable
错误
所以更改
的参数options.addArguments("--headless","--disable-gpu", "--no-sandbox");
另外,--no-sandbox
不需要。根据官方文档,仅--headless
和--disable-gpu
标志就足够
除非您安装了多个版本的Chrome,否则也无需DesiredCapabilities
。
因此,无头染色的简单代码
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless","--disable-gpu");
System.setProperty("webdriver.chrome.driver","/Users/nitinkumar/TEST/chromedriver");
ChromeDriver driver = new ChromeDriver(options);
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver.get("https://qa.cmnetwork.co");
driver.quit();