起因
在本地使用Selenuim动态爬取页面时,没有任何问题,当部署到Ubuntu服务器上后报错
解决,根据在Stack Overflow搜索到的答案,debug出来能在Ubuntu上运行的配置如下:
options.setHeadless(true);
// 这一行是解决问题的关键
options.setExperimentalOption("useAutomationExtension", false);
options.addArguments("start-maximized"); // open Browser in maximized mode
options.addArguments("disable-infobars"); // disabling infobars
options.addArguments("--disable-extensions"); // disabling extensions
options.addArguments("--disable-gpu"); // applicable to windows os only
options.addArguments("--disable-dev-shm-usage"); // overcome limited resource problems
options.addArguments("--no-sandbox");
options.addArguments("--headless");
webdriver连接池做了如下调整
ChromeOptions options = new ChromeOptions();
if (StrUtil.containsIgnoreCase(activeProfile, "dev")) {
options.addArguments("--start-maximized");
options.addArguments("--disable-gpu");
options.addArguments("--allow-running-insecure-content");
options.addArguments("lang=en_US");
} else {
options.setHeadless(true);
options.setExperimentalOption("useAutomationExtension", false);
options.addArguments("start-maximized"); // open Browser in maximized mode
options.addArguments("disable-infobars"); // disabling infobars
options.addArguments("--disable-extensions"); // disabling extensions
options.addArguments("--disable-gpu"); // applicable to windows os only
options.addArguments("--disable-dev-shm-usage"); // overcome limited resource problems
options.addArguments("--no-sandbox");
options.addArguments("--headless");
}