首先,我想说的是 stackoverflow 帮助我很好地处理了我当前的项目,所以谢谢!但是我已经到了一个点,我无法再通过浏览以前的问题来找到帮助。首先,简要概述一下我在做什么。
在我的工作中,我们经常执行这个极其繁琐的过程,我真的很想自动化它。这个过程非常基本,我们去一个网站,登录,导航到相应的页面,将 6 个值从 excel 复制并粘贴到网站上的表格中,提交表格并下载特定的输出报告。我们重复该过程 60 次,因此这似乎是 Excel-Internet Explorer 自动化的主要候选者。
我构建了一个非常基本的 Excel 宏,它可以使用适当的 URL 打开一个新窗口、登录、导航到正确的页面、填写表格并提交表格,但我不知道如何下载报告。这增加了一些复杂性,而且我对 Javascript、PHP 等还不够熟悉。弄清楚发生了什么。
问题:当我选择要生成的正确报告时,会弹出一个带有生成报告的新窗口。当我单击“查看源文档”时,此页面基本上是空的。标题中有一个指向 Javascript 页面的链接,页面中直接有一点 CSS,就像两个小 HTML 片段一样。此页面上有一个下载按钮,但它看起来不像是在 HTML 中创建的。
问题 1:这是一个 Javascript 应用程序吗?有没有办法让我模拟按下下载按钮?
据我了解,如果我必须在两个 IE 窗口之间导航,我的宏的复杂性会大大增加(更不用说没有 HTML 链接可供我点击下载电子表格)所以我开始尝试计算采取不同的方式来做到这一点。我用生成的报告查看了新窗口的 URL,并尝试分析 Firefox 的开发工具(特别是 Web 控制台)发生了什么。这就是我更加迷失的地方......
有一系列的“POSTS”。这些 POSTS 在网站内创建输出时显示:
POST https://www.website.com/somethingdb/quickframe/prod/#####/single_frame_results/correct_output.asp?THIS_KEY=370120c59da884dbdc375b1582a2142c1363533393a313335363032353737363a3646314a313937334a32353030303&bEmbedded=1
POST https://www.website.com/somethingdb/javascriptsource/prod/#####/website/forms/datagrid/DataGrid.html
POST https://www.website.com/qc?function=QuickFrameRmi
然后,当我单击下载按钮时,会显示一个 POST 和一个 GET:
POST https://www.website.com/qc?function=CorrectReport.generateExportFile
得到
GET https://www.website.com/somethingdb/quickframe/prod/#####/dlf/x6::370120c59da884dbdc375b1582a2142c1363533393a313335363032353737363a3646314a313937334a323530303031356026339.xls/sfn/RIGHTPAGE_scen_1_deal_cf.xls
GET 的引用者如下所示:
https://www.website.com/somethingdb/quickframe/prod/#####/single_frame_results/correct_output.asp?THIS_KEY=370120c59da884dbdc375b1582a2142c1363533393a313335363032353737363a3646314a313937334a32353030303&sPagename=RIGHTPAGE&nScenarios=1&bShowExtendedFields=1&bShowAllCollats=0&ShowUnderlyingPage=0&sUnderlyingPage=&WebsitewrapDb=websitewrap&iSettleId=&bScrollbars=true&time=1356025839577
就像我说的,我对这些事情的了解非常有限,但我知道一旦我点击下载按钮,上面的 GET 就是存储在网站服务器上的实际文件名。我可以进入 Excel,单击“打开”并将该文件路径放入其中,它将完全下载我需要的内容。
所以这就是我的想法。如果我可以告诉网站模拟下载过程,并记录那个 GET 是什么,那么我可以把它存储起来,当宏完成生成我需要的所有报告时,它可以导航回 Excel 并设置一个简单的循环下载所有这些??我已经确定了 GET 中发生变化的部分:
x6::370120c59da884dbdc375b1582a2142c
63032353737363a3646314
6026339
这是我的第一篇文章,所以如果我的背景故事过于冗长,我深表歉意。只是想从一开始就尽可能清楚。我想知道网站内部真正发生了什么?我的建议有意义吗?可能吗?有没有更好的办法。提前感谢您的帮助。