タイトル : Re: IEの自動ログイン 投稿日 : 2015/04/10(Fri) 18:36 投稿者 : 魔界の仮面弁士
> DB内にあるサイトのURL,LoginID,Passwordを登録しておき、 > そのサイトをリストから選択すれば自動でログインできる > ものを作成しています。 それらのサイトは、どのタイプの認証方法を採用しているのでしょうか? BASIC 認証のサイトなら、Navigate2 の引数で Authorization ヘッダーを送出することになりますね。 フォーム認証の場合は、提示されているような DOM 操作で行うことになりますが、 その場合、相手先のページの正確な HTML 構造を知る必要がありそうです。 > Public Sub IEInputTextbox(ByRef objIE As Object, str As String, Value As String) 最初の引数だけ、あえて ByRef 指定にしたのは何故でしょうか? それと、VB には「Str 関数」が存在しますので、str という変数名は避けた方が良いかと思います。 (予約語では無いので、str という名前が使えないわけでは無いですが…) > InputタグのouterHTML:objInput.outerHTML <input name="pass" class="inputText login" type="password"> > 検索要素str :"pass" > なのですが、instr関数の戻り値が0になります。 たとえば、 Dim outerHTML As String 'outerHTML = objInput.outerHTML outerHTML = "<input name=""pass"" class=""inputText login"" type=""password"">" idx = InStr(1, outerHTML, "pass", vbTextCompare) のように、HTML 文字列をオンコードで書いてみた場合も InStr が 0 を返しますか? もし、上記であれば 0 を返さないようであれば、そもそも想定したものとは 異なる文字列を InStr に渡してしまっているのだと思います。 たとえばページ遷移や JavaScript の動作タイミングなどの都合で、 outerHTML から想定とは異なる文字列が渡されていたりはしませんか? |