- PR -

VB6.0の WebBrowser使用で自動ログインの方法

1
投票結果総投票数:7
VB6.0 7 100.00%
  • 投票は恣意的に行われます。統計的な調査と異なり、投票データの正確性や標本の代表性は保証されません。
  • 投票結果の正当性や公平性について、@ITは一切保証も関与もいたしません。
投稿者投稿内容
未記入
会議室デビュー日: 2008/09/23
投稿数: 3
投稿日時: 2008-09-23 15:35
初めて投稿します。
VB6の WebBrowserで

WebBrowser1.Navigate ("http://blog95.fc2.com/")

Do While WebBrowser1.Busy = True
DoEvents
Loop
WebBrowser1.Visible = True

Do While WebBrowser1.Document.ReadyState <> "complete"
DoEvents
Loop
WebBrowser1.Document.All.loginid.Value = "********"
WebBrowser1.Document.All.passwd.Value = "******"
WebBrowser1.Document.login.submit

上記のコードでFC2ブログは表示されますが。肝心のログイン部分で、
「オブジェクトはこのプロパティまたはメソッドをサポートしていません」と出ます。
色々調べたのですが、これはと言うものが見つかりません。(参考は有っても動作しません。)
WebBrowser1.Document.以下が違うのでしょうがVB2005では違います。VB6でご存知の方、参考URLを教えて下さい。お願いいたします。
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2008-09-23 16:50
引用:

未記入さんの書き込み (2008-09-23 15:35) より:
WebBrowser1.Document.All.loginid.Value = "********"
WebBrowser1.Document.All.passwd.Value = "******"
WebBrowser1.Document.login.submit


この中の loginid, passwd, login というオブジェクトの名前は、その Web サイトに固有のものです。すなわち Web サイトの HTML ソースの中にその名前が書いてなければその名前ではアクセスできません。
その Web サイトの HTML を眺めてみましたが、少なくとも loginid という名前のものは存在しません。実行時にエラーが出るのはそのためでしょう。

なお、こういうことを調べる方法としては HTML ソースを眺める方法のほかに、Firefox 用の Dom Inspector などがあります。多少手間が楽になります。
未記入
会議室デビュー日: 2008/09/23
投稿数: 3
投稿日時: 2008-09-23 17:09
unibonさん、早速のご回答有難う御座います。

>>この中の loginid, passwd, login というオブジェクトの名前は、その Web サイトに固有のものです。

と言う事は、いちいち、相手のHTMLを見ないと決められないと言う事でしょうか?自動で認証が必要なページに自動的にログインは不可能ですか?共通の何かあるとおもうのですが・・・。Document.getElementsByName等はVB6のWebBrowserでつかえるのでしょうか?相手先HTMLをいちいち読み込み、解析しないといけないのでしょうか?
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2008-09-23 17:24
引用:

未記入さんの書き込み (2008-09-23 17:09) より:
と言う事は、いちいち、相手のHTMLを見ないと決められないと言う事でしょうか?自動で認証が必要なページに自動的にログインは不可能ですか?共通の何かあるとおもうのですが・・・。


私は共通のものがあるとは知らないです。私は自分でやるときは、いちいち HTML を見てます。
なお、パスワードのフィールドでしたら、
コード:
<input type="password" ... >


になっていることがほとんどですので、それ(type 属性が "password" のもの)を探して、ユーザー名やログインIDの入力フィールドはそのちょっと上にあることが多い、といった経験を使って、ある程度の自動化はできるかもしれませんが、100%ではないと思います。また、ログインボタンを押すという操作は、クライアントサイドの JavaScript の絡みで、form を submit するだけではうまくいかず、button を click するという操作をしないとうまくいかないサイトも結構あります。

引用:

未記入さんの書き込み (2008-09-23 17:09) より:
Document.getElementsByName等はVB6のWebBrowserでつかえるのでしょうか?相手先HTMLをいちいち読み込み、解析しないといけないのでしょうか?


getElementsByName は言語を問わず使えるでしょう。
上述のように、いちいち解析するしかないと思うのですが、もしなにか共通の方法があれば私もぜひ知りたいです。
未記入
会議室デビュー日: 2008/09/23
投稿数: 3
投稿日時: 2008-09-23 17:39
unibonさん。有難う御座います。引き続き私も調べてみます。済みませんでした。
1

スキルアップ/キャリアアップ(JOB@IT)