我一直在使用位于 Java的 Chrome骑手的Selenium网络司机进行自动文件下载。 我的法典正在完美地运作,直到我更新至Mokainr版本117+为止,该法典在Chatat 1160.5845.141上做了罚款,似乎在Cyreat 1160.5845.188中开始出现问题。 现在看来,浏览器正在迫使“Save As”方言箱露面,即使我为避开 preferences。
这里是我 Java法典的幻灯:
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import java.util.HashMap;
public class FileDownloadHeadless {
public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.chrome.driver", "path/to/chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.setCapability("os", "Windows");
options.setCapability("os_version", "10");
options.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
options.setCapability(CapabilityType.ForSeleniumServer.ENSURING_CLEAN_SESSION, true);
options.setCapability("chrome.switches", Arrays.asList("--incognito"));
options.setCapability(ChromeOptions.CAPABILITY, options);
options.addArguments("--headless");
options.addArguments("--disable-gpu");
HashMap<String, Object> chromePrefs = new HashMap<>();
chromePrefs.put("profile.default_content_settings.popups", 0);
chromePrefs.put("download.default_directory", "C:\local_files");
chromePrefs.put("download.prompt_for_download", false);
chromePrefs.put("profile.content_settings.exceptions.automatic_downloads.*.setting", 1);
chromePrefs.put("profile.default_content_setting_values.automatic_downloads", 1);
options.setExperimentalOption("prefs", chromePrefs);
WebDriver driver = new ChromeDriver(options);
driver.get("http://my_site.com/download");
driver.findElement(By.id("id_button_download")).click();
Thread.sleep(5000);
driver.quit();
}
}
尽管有这些条件,“Save As”方言箱仍然出现,扰乱了自动化流程。 我尝试了 Chrome喜的多种组合,但似乎没有人绕过第117版的新行为。
是否有任何其他人在“ Chrome”式117+或更高时遇到这一问题? 如果是的话,你如何围绕这一最新情况开展工作? 任何见解都将受到高度赞赏。
取消“国家义务”所建议的“承认”模式确实奏效! 但我想知道,这种方式如何实际影响档案下载选择。 如果任何人在保持冷静态度的同时,能找到另一个解决问题的办法,我将不胜感激。
感谢你的时间和援助。