gpt4 book ai didi

javascript - 使用对话框从 python 中的站点下载文件

转载 作者:行者123 更新时间:2023-11-28 18:44:37 26 4
gpt4 key购买 nike

我正在尝试对网站进行自动化测试,该网站需要填写表格并下载 Excel 表格。数据发布在 HTTP 请求中。因为它有,我使用 urllib2 使 url 工作,但是有一个 打开/保存对话框 弹出来下载工作表。

所以我开始使用可以处理此功能的 selenium,但是涉及到 javascript 函数,我无法将值传递给它。

这是我使用的日期选择器面临的问题 calendarDateInput.js 并且它的一个函数是这样使用的

 <td align="center"><script>DateInput('startDate', true, 'YYYY-MM-DD')</script> </td>

我需要通过 selenium 传递我自己的日期并试过这个:

首先我尝试了

driver.find_element_by_id("endDate_Year_ID").clear()
driver.find_element_by_id("endDate_Year_ID").send_keys("2013")

然后因为它不起作用,我求助于使用 javascript

browser.execute_script("document.getElementById('endDate_Year_ID').value = '2013'")

值没有被填充,我卡在这里

在 mechanize 或 urllib2 中是否有任何其他方法来处理对话框以保存文件或我可以在 python 中处理 javascript 的任何其他模块

我在 linux 机器上做这个测试,send_keys 对任何站点都不起作用

感谢任何帮助。谢谢

最佳答案

绕过对话框并自动下载文件,您可以在浏览器配置文件中进行此类设置。

如果使用 Firefox,您可以尝试以下设置。确保设置您的/path/to/downloads 和 Content-Type(application/download、application/octet-stream、text/csv 等)

fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.download.folderList",2)
fp.set_preference("browser.download.dir", '/path/to/downloads/')
fp.set_preference("browser.download.downloadDir", '/path/to/downloads/')
fp.set_preference("browser.download.defaultFolder", '/path/to/downloads/')
fp.set_preference("browser.helperApps.neverAsk.openFile", "CONTENT-TYPE")
fp.set_preference("browser.helperApps.neverAsk.saveToDisk","CONTENT-TYPE")

然后确保将该配置文件传递给您的浏览器实例:

mydriver = webdriver.Firefox(firefox_profile=fp)

关于javascript - 使用对话框从 python 中的站点下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22031557/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com