如何使用 Java selenium 避免 Firefox 中的窗口下载​​弹出窗口?我需要自动下载而不弹出询问窗口吗?

Azh*_*him 3 java selenium selenium-webdriver

我的代码在这里:-

 WebDriver driver = new FirefoxDriver();
            driver.get("http://www.sample-videos.com/");
            driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS);
            driver.manage().window().maximize();
driver.findElement(By.xpath(".//*[@id='sample-mp4-video']/table/tbody/tr[0]/td[4]")).click();
Run Code Online (Sandbox Code Playgroud)

目的是处理窗口弹出窗口,以便将下载文件保存到本地驱动器。

有没有什么办法可以自动化使用selenium

Flo*_* B. 5

您可以通过自定义首选项自动下载文件。您需要定义下载文件夹browser.download.dir以及将下载的文件的 MIME 类型(video/mp4在您的示例中)。请注意,MIME 类型是Content-Type请求响应中返回的标头。

这是您帖子中页面的一个工作示例:

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.download.dir", "C:\\Temp");  // folder
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "video/mp4");  // MIME type
profile.setPreference("pdfjs.disabled", true);  // disable the built-in viewer
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.download.panel.shown", false);

DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability(FirefoxDriver.PROFILE, profile);
capabilities.setCapability(CapabilityType.ELEMENT_SCROLL_BEHAVIOR, 1);

WebDriver driver = new FirefoxDriver(capabilities);
driver.get("http://www.sample-videos.com/");

// click on the link "10 mp4 720x480"
driver.findElement(By.xpath("//tr[td='10'][td='mp4'][td='720x480']//a")).click();
Run Code Online (Sandbox Code Playgroud)