当硒脚本单击链接时,它会打开一个新选项卡,该选项卡下载Excel文件,然后Chrome浏览器崩溃/关闭,后续步骤失败。相同的测试脚本在火狐浏览器中运行良好。没有堆栈跟踪/日志作为导致崩溃的原因。
final ChromeOptions chromeOptions = new ChromeOptions();
HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
chromePrefs.put("profile.default_content_settings.popups", 0);
chromePrefs.put("download.prompt_for_download", false);
chromePrefs.put("download.directory_upgrade", true);
capabilities.setCapability(CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR, UnexpectedAlertBehaviour.ACCEPT);
//chromePrefs.put(ChromeDriverService.CHROME_DRIVER_VERBOSE_LOG_PROPERTY, true);
chromePrefs.put("download.default_directory", getDownloadPath());
Map<String, Object> perfLogPrefs = new HashMap<String, Object>();
perfLogPrefs.put("traceCategories", "browser,devtools.timeline,devtools");
chromeOptions.setExperimentalOption("perfLoggingPrefs", perfLogPrefs);
chromeOptions.setExperimentalOption("prefs", chromePrefs);
chromeOptions.addArguments("--disable-extensions");
// chromeOptions.addArguments("--verbose");
chromeOptions.addArguments("--enable-logging");
//chromeOptions.addArguments("--v=1");
//chromeOptions.addArguments("--disable-popup-blocking");
logger.info(chromeOptions.getExperimentalOption("perfLoggingPrefs"));
capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
ChromeDriverService driverService = ChromeDriverService.createDefaultService();
// chromeOptions.addArguments("--auto-open-devtools-for-tabs");
if (headless) {
// chromeOptions.addArguments("--headless");
}
capabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
ChromeDriver chrome = new ChromeDriver(driverService, capabilities);
还没有解决方案,但你可以在这里关注 chromedriver 错误:https://bugs.chromium.org/p/chromedriver/issues/detail?id=2730