2016-12-20 5 views
0

私はVBScriptを初めて使っています(VBA、VB.Net、VBScriptが違うことを知りました!)、一見単純ですスクリプト。VBScriptを使ってウェブサイトにログインし、セッションを維持しながら別のページに移動する

URLにアクセスしてhttpステータスコードを取得するつもりですが、私はログインページにリダイレクトされるので、最初にログインする必要があります。私はログインできますが、httpステータスコードが必要なページにどのようにナビゲートするべきかわかりません。

ログイン後、特定のページにアクセスするためにセッションがアクティブであることを確認するにはどうすればよいですか?ここで

は私のコードです:

set httpObj = CreateObject("microsoft.xmlhttp") 

httpObj.open "POST","http://sampleWebsite/login.asp",false 
formValues = "user=username&pass=password" 

httpObj.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" 
httpObj.setRequestHeader "Content-Length", Len(formValues) 
httpObj.send formValues 
chkStatus = httpObj.status 
respTxt=httpObj.responseText 

If chkStatus = 200 Then 
    If (InStr(respTxt,"<title>Sign In")) Then 
    WScript.Echo "The login failed!" 
    Else 
    WScript.Echo "Login was successfull!" 
    End If 
End If 

助けてください。

答えて

0

解決済み!

正常にログインした後、同じWebサイトでURLを試しました。URLがログインページまたはホームページにリダイレクトされているかどうかを確認しました。これを確認するには、responseTextをテキストファイルに記録し、ページソースで確認します。

set httpObj = CreateObject("microsoft.xmlhttp") 

httpObj.open "POST","http://sampleWebsite/login.asp",false 
formValues = "user=user_name&pass=pass_word" 

httpObj.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" 
httpObj.setRequestHeader "Content-Length", Len(formValues) 
httpObj.send formValues 
chkStatus = httpObj.status 
respTxt=httpObj.responseText 

Set objFSO=CreateObject("Scripting.FileSystemObject") 
strLogName = "log.txt" 
strLogPath = "C:\Users\useracc\Documents\Logs\" & strLogName ' Set log path here. 
' Instantiate Logging 
Set objLogFile = objFSO.OpenTextFile(strLogPath, 8, 2) 

If chkStatus = 200 Then 
    If (InStr(respTxt,"<font color=red><B>The user ID or password you have entered does not exist.")) Then 
     WScript.Echo "The login failed!" 
     WriteLog "####################  Script Log Initialized ####################" 
     WriteLog respTxt 
     WriteLog "####################  Script Log Completed ####################" 
    Else 
     WScript.Echo "Login was successfull!" 
     'WScript.Echo respTxt 
     WriteLog "####################  Script Log Initialized ####################" 
     WriteLog respTxt 
     WriteLog "####################  Script Log Completed ####################" 
    End If 
End If 

httpObj.open "GET","http://sampleWebsite/home.asp",false 
httpObj.send 
chkStatus = httpObj.status 
respTxt=httpObj.responseText 

If chkStatus = 200 Then 
    If (InStr(respTxt,"Please enter a valid user name and password to continue.<br>")) Then 
     WScript.Echo "Session is inactive!" 
     WriteLog "####################  Script Log Initialized ####################" 
     WriteLog respTxt 
     WriteLog "####################  Script Log Completed ####################" 
    Else 
     WScript.Echo "Session is active!" 
     'WScript.Echo respTxt 
     WriteLog "####################  Script Log Initialized ####################" 
     WriteLog respTxt 
     WriteLog "####################  Script Log Completed ####################" 
    End If 
End If 

Sub WriteLog(sEntry) 
    'On Error Resume Next 
    objLogFile.WriteLine(Now() & ": Log:  " & sEntry) 
End Sub 
関連する問題