我正在尝试使用Python和Selenium通过多个Internet Explorer11窗口同时下载一些Excels文件。当“另存为”弹出窗口出现时,问题就出现了,单击保存按钮的唯一方法是发送密钥(alt + s)。但是要做到这一点,焦点必须放在浏览器窗口上,正如我之前所说的,我需要同时启动多个IE11窗口并执行相同的操作。
像AutoIt,机器人或者只是事件发送按键这样的工具是无效的,因为这些工具使用的是操作系统,我认为必须有一个像javascript或Python这样的解决方案来处理每个应该工作的窗口浏览器。
非常感谢您的帮助,谢谢!
发布于 2021-03-25 08:41:08
在Java中尝试,文件已下载。
driver.findElement(By.xpath("//body")).sendKeys(Keys.chord(Keys.CONTROL, "j"));
Thread.sleep(2000);
Robot rb = new Robot();
rb.keyPress(KeyEvent.VK_ENTER);解释:

下载该文件
发布于 2020-06-03 10:08:47
据我所知,当你点击下载链接或按钮时,WebDriver没有能力访问浏览器显示的IE下载对话框。但是,我们可以使用一个名为"wget“的单独程序绕过这些对话框。
通过使用这个程序,我们首先可以获得超链接href属性值,然后执行命令提示符命令从链接下载文件。
示例代码:
import time
import os
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
cap = DesiredCapabilities().INTERNETEXPLORER
cap['ignoreZoomSetting'] = True
driver = webdriver.Ie("D:\\Downloads\\webdriver\\IEDriverServer_x64_3.14.0\\IEDriverServer.exe",capabilities= cap)
driver.get("<website url>")
time.sleep(3)
btn = driver.find_element_by_id("btnDowloadReport")
hrefurl = btn.get_attribute("href")
os.system('cmd /c D:\\temp\\wget.exe -P D:\\temp --no-check-certificate ' + hrefurl)
print("*******************")Html资源:
<a id="btnDowloadReport" href="https://github.com//sakinala/AutomationTesting/raw/master/samplefile.pdf" >Download</a>注意:请记住将webdriver路径和网站url更改为您自己的路径。
有关使用wget的更多详细信息,您可以参考this article。
https://stackoverflow.com/questions/62156618
复制相似问题