2016-10-13 35 views
0

由於無法預料的數據涌入,我現在有一個需要完成的webforms超載。打開帶有多個ID的ID,選擇值並提交

我們需要的:打開IE瀏覽器並導航到一個變量URL

  • 的VBScript。
  • 如果彈出窗口出現(僅出現在某些URL上),請單擊確定。
  • 等待網頁加載–網址加載速度很快,但JavaScript網頁速度較慢。
  • 從下拉框中進行選擇。
  • 從下拉框中再次選擇。
  • 點擊提交。

表單完成後,它需要轉到「下一個URL」並執行相同的任務。

現在正如我在本文開頭所提到的,每個表單的URL都不相同。然而,它只是URL的最後部分而異。看下面的例子。只有ID發生變化,URL纔會保持不變。

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。

我也很好奇,爲什麼即使選擇我的下拉框的基礎知識不起作用。

回答

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代碼處理。

+0

@Randazd不客氣。如果您發現它解決了您的問題,請考慮[接受答案](http://meta.stackoverflow.com/a/5235)。 –