タイトル | : Re: IEの自動ログイン |
記事No | : 16108 |
投稿日 | : 2015/04/10(Fri) 16:25 |
投稿者 | : はなまるき |
補足です
Public Sub IEInputTextbox(ByRef objIE As Object, str As String, Value As String) ’str="pass"です On Error Resume Next Dim objInput As Object Dim str1 As String For Each objInput In objIE.document.getElementsByTagName("Input") If InStr(1, objInput.outerHTML, str, vbTextCompare) <> 0 Then objInput.Value = Value Exit For End If Next End Sub
InputタグのouterHTML :objInput.outerHTML <input name="pass" class="inputText login" type="password">
検索要素str :"pass"
において次のような実験をしてみました。
@上記のまま InStr(1, objInput.outerHTML, str, vbTextCompare) 戻り値:0
A明示的に値を入れなおす str="pass" InStr(1, objInput.outerHTML, str, vbTextCompare) 戻り値:>0
B変数に変数を入れてみる Dim str1 as string str1=str InStr(1, objInput.outerHTML, str1, vbTextCompare) 戻り値:=0
タだしところが、strに”inputText login”を渡す場合は戻り値は>0となります。
元々strにはstring型の変数を渡しています。
dim objIE as object dim rs as adodb.recordset dim str as string dim v as string
set objIE=OpenIE()・・・省略 set rs=Createreocordset(strSQL)・・・省略 str=rs.fields("PasswordElement") v=rs.fields("Value")
ret=IEInputTextbox(objIE,str,v)
|