質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

Q&A

解決済

2回答

1190閲覧

vbsファイルで自動ログインを実現したい

SAAT

総合スコア14

Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

0グッド

0クリップ

投稿2020/05/09 00:35

##実現したいこと
現在 vbsファイルで"Classi"に自動ログインさせるコードを書いたのですが、buttonを押すところでうまくいかず、色々試行錯誤を繰り返したのですが解決できなかったので質問させていただきます。

##試したコード

vbs

1Option Explicit 2 3 Dim objIE 4 Dim el 5 6 Set objIE = CreateObject("InternetExplorer.Application") 7 objIE.Visible = True 8 9 'IEを開く 10 objIE.navigate "https://auth.classi.jp/students" 11 12 'ページが読み込まれるまで待つ 13 Do While objIE.Busy = True Or objIE.readyState <> 4 14 WScript.Sleep 100 15 Loop 16 17 'a要素にログインがあったらクリックする 18 For each el In objIE.document.Links 19 if instr(el.innerText,"ログイン") then 20 el.click 21 exit for 22 end if 23 next 24 25 'ページが読み込まれるまで待つ 26 Do While objIE.Busy = True Or objIE.readyState <> 4 27 WScript.Sleep 100 28 Loop 29 30 'IDとパスワードを入力する 31 With objIE.document 32 .getElementsByName("classi_id")(0).Value = "ここにID" 33 .getElementsByName("password")(0).Value ="ここにPassword" 34 End With 35 36 Dim objbutton 37 38 'button要素をコレクションとして取得 39 Set objbutton = objIE.document.getElementsByTagName("button") 40 41 'button要素にログインがあったらクリックする 42 For each el In objbutton 43 if instr(el.innerText,"ClassiのIDでログイン") then 44 el.click 45 exit for 46 end if 47 next

上記のコードではフォームにIDとパスワードを入力するところまでは可能です

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

以下のように form の submit を読んだら、こちらでは動きました。

vbs

1 Dim objForms 2 Dim form 3 4 'Form要素をコレクションとして取得 5 Set objForms = objIE.document.getElementsByTagName("form") 6 7 'Form要素に指定のアクションがあったら submit する 8 For each form In objForms 9 if instr(form.action,"https://auth.classi.jp/login/validate") then 10 form.submit 11 exit for 12 end if 13 next

投稿2020/05/09 01:39

Yasumichi

総合スコア1773

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SAAT

2020/05/09 03:34

ご回答いただきありがとうございます!! 具体的なコードを示していただき本当にありがたいです
guest

0

ベストアンサー

ボタンクリック部分のエラー処理を削除してとりあえず、単純化して
IDを直接指定やってみてはどうですか?

投稿2020/05/09 00:52

編集2020/05/09 00:55
AMK

総合スコア765

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SAAT

2020/05/09 00:53

el.click ではクリックさせていないという事でしょうか
SAAT

2020/05/09 00:55

もしよろしければコードの誤った部分と訂正したところをお教えいただければ幸いです
AMK

2020/05/09 00:56

あ、ごめんなさい それ見落としてました
SAAT

2020/05/09 00:58

お手数をおかけしてすみません;;
AMK

2020/05/09 00:58

Forとか複雑なので、一度単純化して 対象のボタンを押すように改造してみてはどうですか?
SAAT

2020/05/09 00:59

了解です試してみます ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問