Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium webdriver 是什么阻止我在使用自动测试时打开的浏览器窗口中下载文件?_Selenium Webdriver_Selenium Chromedriver - Fatal编程技术网

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

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

我无法在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>
我希望文件能被下载

然而,下载链接文本只是被突出显示


需要注意的重要事项:相反,我可以找到其他元素,将它们分配给
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();