1

vbscript を実行しようとしていますが、次のようになります。

  1. IE を起動して Web サイトを読み込みます。
  2. ウェブサイトにログインします。
  3. ログインが成功したかどうかを検証します。

これで、第 1 部と第 2 部を処理するスクリプトができました。第 3 部、つまり、私が立ち往生しているログインの成功を検証します。どうすればいいですか?

これは、フォーラムから取得したコードです。

 Dim IE
 Set IE = CreateObject("InternetExplorer.Application")
 IE.Visible = 1 
 IE.navigate "https://my.website.com"
 Do While (IE.Busy)
   WScript.Sleep 10
 Loop
 Set Helem = IE.document.getElementByID("formUsername")
 Helem.Value = "username" ' change this to yours
 Set Helem = IE.document.getElementByID("formPassword")
 Helem.Value = "password" ' change this to yours
 Set Helem = IE.document.Forms(0)
 Helem.Submit
4

2 に答える 2

3

この高いレベルでのログインの成功を確認する最善の方法は、おそらく、ログインしたときにのみ表示される HTML 内の要素を検索することです。それが存在する場合は、ログインしていると想定し、ナビゲートしてログインしようとしない場合は、また。

これは、Len() を使用して、テキストを含む要素が存在するかどうかを確認する非常に単純な例です。必要に応じて、より洗練されたものにすることができ、表示されている情報がログインした場合に表示されるものと一致することを確認するなどのことを行うことができます.

上記で使用したのと同じ関数を使用して要素を取得し、それらのメンバーを比較できます。

Dim IE
Dim Helem

Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = 1 
IE.navigate "http://www.example.com"

Set Helem = IE.document.getElementByID("formUsername")
Helem.Value = "username" ' change this to yours
Set Helem = IE.document.getElementByID("formPassword")
Helem.Value = "password" ' change this to yours
Set Helem = IE.document.Forms(0)
Helem.Submit

Do While (IE.Busy)
    WScript.Sleep 10
Loop

Dim someElement
Set someElement = IE.document.getElementByID("someElement")

If Len(someElement.innerText) > 0 Then
    MsgBox "logged in"
End If
于 2013-05-08T12:58:08.840 に答える
1

あなたができることがいくつかあります

  • Web サイトが「ログインに失敗しました」や「パスワードが正しくありません」などのエラー メッセージを返した場合は、その特定のテキストの本文を確認できます。

    If inStr(lcase(IE.document.body.innertext), "bad login") then
      'Do error checking here
    End If
  • ログイン後にタイトルタグが変更された場合は、それをチェックして、ログインしていることを確認することもできます.
于 2013-05-08T12:59:21.640 に答える