2011-01-21 5 views
1

フェデックスの引用を得るためにvbscriptを書きました。 IE8(任意のモード) エラーで破るにIE6で素晴らしい作品しかし:オブジェクト必要:「要素」コード: "IE8でVBscript(スクリーンスクレイピング)が壊れた

dim ie1 

dim wsh : Set wsh = CreateObject("WScript.Shell") 

Dim ArgObj, var1, var2, var3, var4: Set ArgObj = WScript.Arguments 
var1 = 2.5 'ArgObj(0) 'First parameter 
var2 = 2.5 'ArgObj(1) 'Second parameter 
var3 = 2.5 'ArgObj(2) 'Third parameter 
var4 = 2.5 'ArgObj(3) 'Fourth parameter 


dim zip 
zip=InputBox("Please enter destination zip code - You must have Internet access for this to work", " Destination Zip Code", 12345) 
Const URL = "https://www.fedex.com/ratefinder/home?cc=US&language=en&locId=" 
set ie1=WScript.CreateObject("InternetExplorer.Application") 
with ie1 
    .Visible =1 

'dim wsh : Set wsh= CreateObject("WScript.Shell") 
'dim iefocus 
'Do Until iefocus 
'iefocus=wsh.AppActivate("Microsoft Internet Explorer") 

'Loop 

    .Navigate URL 
    Do Until .ReadyState = 4 
    WScript.Sleep 50 ' wait for page to load 
    Loop 


On Error resume next 
    With .document.forms("logonForm") 
.username.value = ""  ' enter company into a textbox 
.password.value = ""  ' enter name into a textbox 
.submit 

WScript.Sleep 100 ' wait for page to load 
Do Until ie1.busy=0 
    WScript.Sleep 50 ' wait for page to load 
    Loop 

End With 

On Error Goto 0 
With ie1.document.forms("standAloneActionForm") 


.origZip.value = "84016" 
.destZip.value=zip 
.receivedAtCode.value=1 
.totalPackageWeight.value=var1 


    For Each element in .elements 
     If element.type = "button" and element.value="Get detailed quote" Then 
element.click 
     End If 
    Next 

WScript.Sleep 500 ' wait for page to load 
Do Until ie1.busy=false 
    WScript.Sleep 50 ' wait for page to load 
    Loop 


With ie1.document.forms("standAloneActionForm") 
    For Each element in .elements 

    If element.type = "text" Then 

'.if element.value="Select" then element.value.selectedindex=1 
if element.value="L" then element.value=var2 
if element.value="W" then element.value=var3 
if element.value="H" then element.value=var4 

    End If 
    Next 



With ie1.document.forms("PackageList") 

' .packageType.value=1 
' For Each element in .elements 

    If element.type = "Select" Then 
.packageType.value=1 
'if element.value="Select" then element.value=1 

    End If 
    ' Next 



' For Each element in .elements 
     If element.type = "button" and element.value="Continue" Then 
element.click 
     End If 
' Next 



end with 
end with 
end with 
end with 

それは直後に壊れる:私はここに困惑しています800A01A8

をコードでありますPackageList "ドロップダウンボックスです。

任意のアイデアが役に立ちます。

答えて

0

問題を絞り込むためのテストアイデア:無料のiMacros Internet Explorer addonに同じシーケンスを記録することができます。そこで動作する場合は、それがあなたのコードの問題であることがわかります。 iMacrosマクロが動作しない場合は、この特定のWebサイトでのIEの問題です。

+0

iMacrosをIE8のどのサイトでも動作させることができません。しかし、提案をありがとう。 – mikedopp

関連する問題