在AUT中,当用户单击Excel按钮时,应下载文件。 过去,在其他Web应用程序中,我使用chrome选项将其处理为: 但是在我当前的应用程序中,我看到当用户单击Excel按钮时,打开了一个新选项卡,其中弹出了文件浏览器。这里的问题是如何处理这个问题。即使我切换了窗口句柄,我仍然会弹出不需要的弹出窗口。我该如何处理这种情况。
HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
chromePrefs.put("profile.default_content_settings.popups", 0);
chromePrefs.put("download.default_directory", download_dir);
chromeOptions.setExperimentalOption("prefs", chromePrefs);
答案 0 :(得分:0)
这是我过去用来下载文件的(python)代码
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_experimental_option("prefs", {
"download.default_directory": r"C:\Users\xxx\downloads\Test",
"download.prompt_for_download": False,
"download.directory_upgrade": True,
"safebrowsing.enabled": True
})
(显然,这是在python中,我可以尝试制作Java版本,也可以尝试,如果愿意的话)
答案 1 :(得分:0)
我开发了library,在这种情况下,它的处理更为清晰。您可以使用给定的下载文件夹生成ChromeOptions对象,并使用单行方法调用来下载文件并验证继承:
private SeleniumDownloadKPI seleniumDownloadKPI;
@BeforeEach
void setUpTest() {
seleniumDownloadKPI =
new SeleniumDownloadKPI("/tmp/downloads");
ChromeOptions chromeOptions =
seleniumDownloadKPI.generateDownloadFolderCapability();
driver = new ChromeDriver(chromeOptions);
}
@Test
void downloadAttachTest() throws InterruptedException {
adamInternetPage.navigateToPage(driver);
seleniumDownloadKPI.fileDownloadKPI(
adamInternetPage.getFileDownloadLink(), "SpeedTest_16MB.dat");
waitBeforeClosingBrowser();
}