Selenium webdriver 是什么阻止我在使用自动测试时打开的浏览器窗口中下载文件?
我无法在Chrome浏览器窗口(版本73.0.3683.86(官方版本)(64位))中使用Selenium Webdriver下载CSV文件,该窗口在执行自动测试时打开。我使用的是Selenium版本:3.4 以下是HTML:Selenium webdriver 是什么阻止我在使用自动测试时打开的浏览器窗口中下载文件?,selenium-webdriver,selenium-chromedriver,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/Image
<h4>
<a href="/Hardware/ExportCsv?hardId=USB" download="Drives.csv" id="excel-btn">
<img src="../../Content/Images/excel.svg">
Export csv file.
</a>
</h4>
我希望文件能被下载
然而,下载链接文本只是被突出显示
需要注意的重要事项:相反,我可以找到其他元素,将它们分配给
WebElement
,并在这些元素上成功执行Selenium操作。我一直在逃避下载。我找到了一个有效的答案!允许您在无头浏览器中下载文件的相同解决方案也适用于这种情况。基本上,有一个功能可以防止软件通过Chrome浏览器将文件下载到您的计算机上。为了避免这种情况,您需要.setDownloadBehavior
来允许下载。(确保将下载路径设置为下载目录。)
阅读更多关于它的信息;对于Java中的代码示例,Python和C#。如果不提供您正在自动运行的页面的实际HTML,将帮不上什么忙,同时我建议您尝试通过执行Java脚本来单击元素:public void clickWithJavaScript(WebElement元素){JavascriptExecutor=(JavascriptExecutor)driver;executor.executeScript(“参数[0]。单击();”,元素);}谢谢@Matthewek我也尝试了JavascriptExecutor——没有工作。也应该添加该尝试。您的浏览器设置可能与selenium运行的浏览器设置不同。无论如何,如果您希望我们提供帮助,您需要提供更多相关信息:浏览器类型和版本、HTML代码、Selenium版本、@Würgspaß、编辑文章以反映您的观点。“谢谢你。”温莎福德对你的问题投了赞成票。遗憾的是,我不喜欢Chrome。所以我帮不了你,但其他人可能会帮你。
Browser.driver.findElement(By.id("excel-btn")).click();
action.moveToElement(Browser.driver.findElement(By.id("excel-btn"))).click().perform();