打开包含多个ID的网址,选择值并提交

时间:2016-10-13 05:42:25

标签: internet-explorer vbscript automation

由于无法预见的数据涌入,我现在需要完成网页格式的重载。

需要什么:

  • 打开IE并导航到变量URL的VBScript。
  • 如果出现弹出窗口(仅显示在某些URL上),请单击“确定”。
  • 等待网页加载 - 网址加载很快,但JavaScript网页速度要慢得多。
  • 从投递箱中进行选择。
  • 从下拉框中进行另一个选择。
  • 点击提交。

表单完成后,需要转到“下一个URL”并执行相同的任务。

正如我在本文开头所提到的,每个表单的URL都有所不同。然而,它只是URL的最后一部分变化。请参阅以下示例。 URL仅保持相同ID更改。

http://saves/GEM/wwwsci/cms_call_outcome_sts_frame.html?id=TCAWSNG19924556

我有一个包含数百个id的列表,所有这些都需要更新。

如前所述,我过去已预先填充了表单,但没有任何需要引用列表的内容。

这与我过去使用的类似:

Dim URL
Dim IE

Set objIE = CreateObject("InternetExplorer.Application")

Call objIE.Navigate("http://saves/GEM/wwwsci/cms_call_outcome_sts_frame.html?id=TCAWSNG19924556")  '<-- Don't know how insert id referenced from a list.

objIE.Visible = True

Do Until objIE.ReadyState = PAGE_LOADED : Call WScript.Sleep(100) : Loop    '<-- load url
WScript.Sleep(25000) '<-- Wait for webpage JavaScript (can take 20 seconds)

'Need to press "Enter" here if a pop up occurs - Maybe .SendKeys?

IE.Document.getElementByName("oper_select10").value = "1" 'select first drop down box (not working)
IE.Document.getElementByName("oper_select6").value = "1" 'select second drop down box (not working)
IE.Document.getElementByName("I2").Click 'Submit form (not working)

WScript.Sleep(2500)

然后脚本需要循环但具有不同的ID。

我也很好奇为什么即使选择我的下拉框的基础也不起作用。

1 个答案:

答案 0 :(得分:0)

您可以在循环中调用具有不同ID的URL,如下所示:

'read IDs from file into array
Set fso = CreateObject("Scripting.FileSystemObject")
idList = Split(fso.OpenTextFile("C:\path\to\input.txt").ReadAll, vbNewLine)

Set objIE = CreateObject("InternetExplorer.Application")
For Each id In idList
  objIE.Navigate "http://saves/GEM/wwwsci/cms_call_outcome_sts_frame.html?id=" & id
  'rest of your code goes here
Next

无法实际查看您要处理的网页的HTML和JavaScript代码,无法帮助您完成剩余的代码。