是什么使我无法在使用自动化测试时打开的浏览器窗口中下载文件?

时间:2019-04-03 10:04:14

标签: selenium-webdriver selenium-chromedriver

我无法在执行自动测试时打开的Chrome浏览器窗口(版本73.0.3683.86(正式版本)(64位))中使用Selenium-Webdriver下载CSV文件。我正在使用Selenium版本:3.4

这是HTML:

<h4>
<a href="/Hardware/ExportCsv?hardId=USB" download="Drives.csv" id="excel-btn">
        <img src="../../Content/Images/excel.svg">
        Export csv file.
    </a>
</h4>

click()或使用Actions类均无效。如果我用鼠标单击链接,则会下载文件。

Browser.driver.findElement(By.id("excel-btn")).click();
action.moveToElement(Browser.driver.findElement(By.id("excel-btn"))).click().perform();

我希望文件被下载。

但是,下载链接文本只是突出显示。

需要注意的是:相反,我可以找到其他元素,将它们分配给WebElement并在这些元素上成功执行Selenium操作。只是下载让我难以理解。

1 个答案:

答案 0 :(得分:1)

我找到了一个有效的答案!在这种情况下,同样适用的解决方案也允许您下载headless browser中的文件。本质上,有一项功能可以阻止软件通过Chrome浏览器将文件下载到您的计算机上。要解决此问题,您需要.setDownloadBehavior才能进行下载。 (确保将Download Path设置为下载目录。)

详细了解here;和here用于Java,Python和C#中的代码示例。