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

问题描述 投票:2回答:1

我无法在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操作。只是下载是我的意思。

selenium-webdriver selenium-chromedriver
1个回答
1
投票

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

了解更多关于它here;和here用于Java,Python和C#中的代码示例。

© www.soinside.com 2019 - 2024. All rights reserved.