首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python和Selenium在Internet Explorer 11中自动下载文件

使用Python和Selenium在Internet Explorer 11中自动下载文件
EN

Stack Overflow用户
提问于 2020-06-03 00:22:49
回答 2查看 2.3K关注 0票数 0

我正在尝试使用Python和Selenium通过多个Internet Explorer11窗口同时下载一些Excels文件。当“另存为”弹出窗口出现时,问题就出现了,单击保存按钮的唯一方法是发送密钥(alt + s)。但是要做到这一点,焦点必须放在浏览器窗口上,正如我之前所说的,我需要同时启动多个IE11窗口并执行相同的操作。

像AutoIt,机器人或者只是事件发送按键这样的工具是无效的,因为这些工具使用的是操作系统,我认为必须有一个像javascript或Python这样的解决方案来处理每个应该工作的窗口浏览器。

非常感谢您的帮助,谢谢!

EN

回答 2

Stack Overflow用户

发布于 2021-03-25 08:41:08

在Java中尝试,文件已下载。

代码语言:javascript
复制
driver.findElement(By.xpath("//body")).sendKeys(Keys.chord(Keys.CONTROL, "j"));
Thread.sleep(2000);
Robot rb = new Robot();
rb.keyPress(KeyEvent.VK_ENTER);

解释:

  1. 首先单击下载file.this弹出窗口的按钮/链接,将会看到

  1. 单击"Ctrl+j“将打开"View Downloads pop up”。然后单击enter,由于焦点将放在最近的文件上,因此将从

下载该文件

票数 1
EN

Stack Overflow用户

发布于 2020-06-03 10:08:47

据我所知,当你点击下载链接或按钮时,WebDriver没有能力访问浏览器显示的IE下载对话框。但是,我们可以使用一个名为"wget“的单独程序绕过这些对话框。

通过使用这个程序,我们首先可以获得超链接href属性值,然后执行命令提示符命令从链接下载文件。

示例代码:

代码语言:javascript
复制
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资源:

代码语言:javascript
复制
<a id="btnDowloadReport" href="https://github.com//sakinala/AutomationTesting/raw/master/samplefile.pdf" >Download</a>

注意:请记住将webdriver路径和网站url更改为您自己的路径。

有关使用wget的更多详细信息,您可以参考this article

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62156618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档