2011-01-21 4 views
1

페덱스 견적을 얻기 위해 vbscript를 작성했습니다. IE8 (모든 모드)가 오류와 고장에 IE6에 큰 작동하지만 : 필요한 개체 : '요소'코드 : "IEsc에서 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 매크로가 작동하지 않는 경우이 특정 웹 사이트의 IE 문제입니다.

+0

IE8이 설치된 사이트에서 iMacros를 사용할 수 없습니다. 생각해 줘서 고마워. – mikedopp