パスワードに入力するには

解決


ksc  2006-05-15 10:23:01  No: 95387

https://www.rakuten-sec.co.jp/ITS/V_ACT_Login.html

の  パスワードを  入力したいのですが  下のようにしても
入力できません

オブジェクト変数またはWithブロック変数がせっていされていません  と出ます

オブジェクトの  調べる方法がありましたら  教えていただけませんか

 MyIe.Document.forms(0).elements("loginid").Value = "12345"

MyIe  は  IEです

よろしくお願いします

当方の環境ですが  XP  ホームエディション  2002  サービスパック2
で  VB6  SP5  です


魔界の仮面弁士  2006-05-15 12:54:06  No: 95388

# エラーメッセージは正確に。

> オブジェクトの  調べる方法がありましたら  教えていただけませんか
調べる方法を知りたいとの事なので、あえて回答は書かないでおきますね。

今回のように、
  MyIe.Document.forms(0).elements("loginid").Value = "12345"
というコードで、そのエラーが発生する場合は、
  Debug.Print MyIe Is Nothing
  Debug.Print MyIe.Document Is Nothing
  Debug.Print MyIe.Document.forms Is Nothing
  Debug.Print MyIe.Document.forms(0) Is Nothing
  Debug.Print MyIe.Document.forms(0).elements Is Nothing
  Debug.Print MyIe.Document.forms(0).elements("loginid") Is Nothing
を実行して、どのオブジェクトが「設定されていない状態」なのかを付き止めましょう。

たとえば、.Document の時点で失敗するようであれば、まだページの読込が
完了していない時に、処理を行おうとしていた可能性があります。

あるいは最後の .Document.forms(0).elements("loginid") で失敗するようなら、
要素名のloginidという指定、もしくは、その前のformsの指定が失敗している
可能性があります。括弧内の指定を見直してみましょう。

また、VBの「ウォッチウィンドウ」や「ローカルウィンドウ」を使うと、
オブジェクトのプロパティを追跡しやすいので、それらも試してみてください。


ひろ  2006-05-16 00:29:50  No: 95389

問題はHTMLの構成を把握できていないことですから、
構成情報を整理して見ることの出来るツールがあればいいですね。

1. Firefox でページ情報を見る / DOM Inspector

2. Internet Explorer Developer Toolbar
  (まだβなので取り扱い注意ですが、DOMツリーの表示が出来るので便利です。MSのダウンロードサイトで探して下さい)。


ksc  2006-05-16 01:12:51  No: 95390

Debug.Print MyIe.Document Is Nothing


ksc  2006-05-16 01:16:28  No: 95391

こんにちは
下の部分で  false
十分時間を待ってしましたが
やはり同じでした

すいません  考えましたが  なんでなんでしょう
すいません  ボン!頭が割れそうです

Debug.Print MyIe.Document Is Nothing


ksc  2006-05-16 01:47:21  No: 95392

Internet Explorer Developer Toolbar
 面白いものだと思いますが
loginid  まで  たどりつけずすいません

VB  みたいに  選択できるように  ツリーで  表示できないですかね
そうすると  選びやすいんですが  Classが  絡んできてるような感じで
ただ  パスワードと  IDを  入力したいだけやのに・・・・
悔しい・・・・


ksc  2006-05-16 01:57:59  No: 95393

すいません  間違えてました

  Debug.Print MyIe Is Nothing
  Debug.Print MyIe.Document Is Nothing
  Debug.Print MyIe.Document.forms Is Nothing
  Debug.Print MyIe.Document.forms(0) Is Nothing
  Debug.Print MyIe.Document.forms(0).elements Is Nothing
  Debug.Print MyIe.Document.forms(0).elements("loginid") Is Nothing
結果
False
False
False
False
False
True

ということは  elements("loginid")  がないということですよね
ソースには  あるんですが・・・・
わかりません


ksc  2006-05-16 02:07:09  No: 95394

MyIe.Document.forms(0).elements("loginid").Value = "12345"
の0を  1にかえると  できました
MyIe.Document.forms(1).elements("loginid").Value = "12345"
でも   違いがわかりません  多分  forms(1)に  付属する  エレメントであると行くことなんでしょうが

それをソースから  区別するには  どうすればいいのでしょうか・・・・
わかったようでわからない・・・
すいません


ひろ  2006-05-16 02:21:34  No: 95395

どうやってログイン用のformと他のformを判別すればいいのかが問題ですね。
action 属性値をチェックした方が良いのかもしれません。

# 1つめのformの action の URL に見覚えがありませんか?


ひろ  2006-05-16 02:35:43  No: 95396

パスワードを誤って関係のないサイトやページに送信すると危険なので
やっぱり formのaction属性値をチェックする事をお勧めします。


ksc  2006-05-16 09:26:01  No: 95397

formsが2つあって  それを  区別するのにforms(0) forms(1) とわけてあるわけですね  わかってきたようなきがします


ksc  2006-05-17 10:23:09  No: 95398

ありがとうございました


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加