プロが教える店舗&オフィスのセキュリティ対策術

認証番号等を入力してログインしたのですがうまくいきません教えて下さい

' フォーム入力
objIE.document.Forms(0).Item("1").Value = "xxxxx" '1
objIE.document.Forms(0).Item("2").Value = "xxxxx" '2
objIE.document.Forms(0).Item("3").Value = "xxxxx" '3


'下記のログイン用構文から
<div class="btnSubmit">
<input type="button" id="loginButton" value="ログイン">
</div>

'ログインボタンを探して押したく下記のように書きましたが失敗して上手く行きません
  どのような記述が宜しいのでしょうか教えて下さい

For Each objTag In objIE.document.all.objTag("input")
If objTag.value = "ログイン" Then
objTag.Click '失敗
objTag.Click() '失敗
End If
Next

A 回答 (3件)

JScriptかVBSなんでしょうけれど・・・(少なくともjavascriptではなさそう)



MS系はあまり良くは知らないのですが、
クリックは、Element.Click()でいけるはず。
察するところ、
 1)読み込みが終了する前に処理しようとしている
  (フォーム入力ができているならこれではなさそうですが)
 2)objIE.document.all.objTag("input")で要素(群)が取得できていない
  (objTag("input")という取得メソッドはありましたっけ??)
あたりが原因ではないでしょうか?

要素の取得には、getElementByIdやquerySelector等も使えるはずと思いますので、そちらの方がより簡便かと思います。


以下のVBSは、質問者様の環境では動作しませんか?
 1)Yahooの検索ページを表示
 2)検索入力に「教えてgoo」と入力
 3)検索ボタンをクリック

Dim objIE, elm

Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True
objIE.Navigate "http://search.yahoo.co.jp/"

Do Until objIE.readystate = 4
Wscript.Sleep 200
Loop

objIE.Document.querySelector("#yschsp").Value = "教えてgoo"

Set elm = objIE.Document.querySelector("#sbn input[type='submit']")
'MsgBox elm.Value
elm.Click()

'objIE.Quit
'Set objIE = Nothing
    • good
    • 0
この回答へのお礼

丁寧なご教授有難う御座います。
じっくりと勉強さして頂きます。
初心者なものでテキパキと進みませんご理解をお願いします。

お礼日時:2016/02/10 12:03

どうせIEの制御なら、VBAとの相性も考えてVBSの方がよいかも



test.htm
<form>
1:<input type="text" name="1"><br>
2:<input type="text" name="2"><br>
3:<input type="text" name="3"><br>
</form>
<div class="btnSubmit">
<input type="button" id="loginButton" value="ログイン" onclick="alert('test')">
</div>

test.vbs
URL="http://exsample.com/test.htm
Set WSHShell=Wscript.CreateObject("Wscript.Shell")
set objIE=Wscript.CreateObject("InternetExplorer.application")
objIE.navigate2(URL)
objIE.visible=true
objIE.document.Forms(0).Item("1").Value = "xxxxx" '1
objIE.document.Forms(0).Item("2").Value = "xxxxx" '2
objIE.document.Forms(0).Item("3").Value = "xxxxx" '3

For Each objTag In objIE.document.getElementsByTagName("input")
If objTag.value = "ログイン" Then
msgbox "pause"
objTag.Click()
End If
Next

とりあえず、読み込み待ちのためpauseしています。
msgboxの行を削除して稼働しないならなんらかのウェイト処理が必要かも

また、適当にセキュリティレベルを下げないと動かない可能性はあります
    • good
    • 0
この回答へのお礼

ご教授有難う御座います。
初心者故テキパキとはいきませんが
勉強させて頂きます、有難う御座います

お礼日時:2016/02/10 12:05

>JavaScript



Javascript??
拡張子jsのスクリプトでブラウザを開いて、処理したいということでしょうか?
もうちょい簡潔で過不足ないソースを表記してみてください
    • good
    • 0
この回答へのお礼

初心者で表現まずくて申し訳ありません
IE11で開き 認証画面の ログイン ボタンを押す
記述が知りたいのです。

お礼日時:2016/02/09 09:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!