HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2016
0412
NoNameInstgramに自動でログインする方法 22解決


NoName

リンク

2016/4/12(Tue) 22:08:03|NO.75210

下記のURLで昨日質問した者です。
http://hsp.tv/play/pforum.php?mode=all&num=75204

IEのコンポーネントを利用してInstGramに自動ログインするために以下のコードを書きました。


newcom IE, "InternetExplorer.Application" IE->"Navigate" "https://www.instagram.com/accounts/login/" IE("Visible")=1 repeat : wait 10 : if IE("ReadyState")=4 { break } : loop repeat : wait 10 : pDoc = ie("Document") : if pDoc("ReadyState") = "complete" { break }: loop repeat DocumentElement=IE("Document") comres UserNameElement DocumentElement->"getElementsByName" "username" comres PassWordElement DocumentElement->"getElementsByName" "password" comres TagElement DocumentElement->"getElementsByTagName" "button" if (UserNameElement("length") != 0){ UserNameRoot=UserNameElement("item",0) UserNameRoot("value")="UserName" } if (PassWordElement("length") != 0){ PassWordRoot=PassWordElement("item",0) PassWordRoot("value")="PassWord" } if (TagElement("length") != 0){ TagRoot=TagElement("item",0) TagRoot->"click" break } wait 10 loop

正常にIDとPWが入力されログイン出来ると思いきや、「入力された情報は存在しない。」と表示されます。
調べた所見た目は入力されているが実際には入力されていないようになっているみたいです。
※これはプログラムがサイトにIDPWを打ち込む前に手動で撃ち込んだ後にそのまま自動ログインさせるとわかります。

ですので、どのようにコードを書けばよろしいでしょうか?
よろしくお願い致します。



この記事に返信する


inovia

リンク

2016/4/13(Wed) 19:53:11|NO.75216

こんな感じでしょうか。

newcom IE, "InternetExplorer.Application" IE->"Navigate" "https://www.instagram.com/accounts/login/" IE("Visible")=1 repeat : wait 10 : if IE("ReadyState")=4 { break } : loop repeat : wait 10 : pDoc = ie("Document") : if pDoc("ReadyState") = "complete" { break }: loop // inputイベントを発火させるために必要 // (IE11でしか動かないかも?) comres InputEvent pDoc->"createEvent" "HTMLEvents" InputEvent->"initEvent" "input", 1, 0 repeat DocumentElement=IE("Document") comres UserNameElement DocumentElement->"getElementsByName" "username" comres PassWordElement DocumentElement->"getElementsByName" "password" comres TagElement DocumentElement->"getElementsByTagName" "button" if (UserNameElement("length") != 0){ UserNameRoot=UserNameElement("item",0) UserNameRoot("value")="ユーザー名" comres dummyRet // ないと TagElement が上書きされる // 値を変更したらinputイベントを発火する UserNameRoot->"dispatchEvent" InputEvent } if (PassWordElement("length") != 0){ PassWordRoot=PassWordElement("item",0) PassWordRoot("value")="パスワード" comres dummyRet // ないと TagElement が上書きされる // 値を変更したらinputイベントを発火する PassWordRoot->"dispatchEvent" InputEvent } if (TagElement("length") != 0){ TagRoot=TagElement("item",0) TagRoot->"click" break } wait 10 loop



NoName

リンク

2016/4/13(Wed) 21:07:04|NO.75217

>>inoviaさん
掲載して頂いたコードで完璧に動作しました。
1日調べても分からなかったので本当に助かりました!!
ご丁寧な回答ありがとうございました><!!



ONION software Copyright 1997-2023(c) All rights reserved.