人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

下記ページのチェックボックスにチェックを入れ、送信するスクリプトを教えてください。
下記の方法ですと、チェックまでは入るのですが、その後、手動でクリックしても、正常に送信できません。何か、他にも、調べているのかもしれません。適当に推測してエスパー的な回答を期待します。
また、中断1,2のどちらを試してもうまくいきません。こちらも併せて教えてください。

宜しくお願い致します。


==http----------text.html==
<form action="test.cgi" method="post" name="" id="">
<input name="testA" type="checkbox" value="" id="tA" onclick="if (this.checked) { this.form['testA'].value='40'; }else{this.form['testA'].value=''; } if (this.checked) { this.form['testXXXXA'].value='40'; }else { this.form['testA'].value=''; } " /><label>TEST-A</label>
<input type="submit" name="send_name" value="send">
</form>


==perlスクリプト==
use Win32::OLE;
$IE = Win32::OLE->new('InternetExplorer.Application');
#見えるor見えない
$IE->{Visible} = $visible;
$IE->Navigate( 'http----------text.html' );

# 途中省略

$testa = $ie->document->getElementById("testA"); $testa->{checked} = "true";

exit;##中断1
$IE->document->submit();

exit;##中断2
$btn = $IE->document->getElementById("send_name");
$btn->click();

●質問者: TREEG
●カテゴリ:コンピュータ インターネット
✍キーワード:application BTN Click EXIT HTML
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● kn1967
●80ポイント ベストアンサー

(原因)クライアントサイドスクリプトが起動していないのが原因と思われる。

$testa = $ie->document->getElementById("testA");

$testa->{checked} = "true";

上記では、オブジェクトに値を入れただけなので

onclickに記述されているスクリプトは起動していない。


(対応)スクリプトを起動させたいならばオブジェクトをclickする。

$testa = $ie->document->getElementById("testA");
$testa->{checked} = "";
$testa->click();

チェックボックスはトグル(クリックする度にオンとオフが切り替わる)なので、

一度内容を空白にしておいてから、クリックするという手間をかけている。

チェックボックスの中身が必ず空白と決まっているのであれば、

checked=""にする必要は無いが、念のためいれておくと安心。

◎質問者からの返答

回答いただきありがとうございます。

無事動作致しました!

$IE->document->submit();

についてはいかがでしょうか?

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ