2

主にフォームに無効なデータを入力し、何が起こるかを確認して、Web ページのいくつかのテストを自動化したいと考えています。Javascriptで可能ですか?そうでない場合、PHPで可能ですか?スクリプトは、セッションと Cookie を処理する必要があります。

これは、3 つのページを持つ非常に単純な例です最初に「x」を入力して送信をクリックし、2 番目に「3」を入力して送信をクリックします。それが成功した場合、最後のページに "you got it!" と表示されます。スクリプトをロードしてすぐに「わかりました」と表示されるように自動化できますか? 注意してください:これには簡単にするためにcookies\sessionsはありませんが、それらをサポートする答えが欲しいです。

  • iframe上記のサイトを含む別のページを作成してみました。しかし、内部の要素にアクセスできませんでしたiframe
  • リクエストを送信するcURLを使用して PHP スクリプトを作成しようとしましたが、Cookie を転送できませんでした。
  • この回答にコメントを投稿しましたが、返信がありませんでした。

便宜上、コードを次に示します (実際には必要ありませんが、念のため..)
index.html

<!DOCTYPE html>
<html>
First page: please enter x
<form method="post" action="next.php">
<input type="text" id="id" name="id" />
<input type="submit" />
</form>
<html>

次の.php

<?php
if(isset($_POST) && isset($_POST['id']) && $_POST['id']!='x'){
    echo '<script>window.location = "http://www.cs.bgu.ac.il/~kahilm/myNavigator/";</script>';
}
?>
<!DOCTYPE html>
<html>
Second page: please enter 3
<form method="POST" action="last.php">
<input type="text" name="code" />
<input type="submit" />
</form>
</html>

last.php

<?php
if(isset($_POST) && isset($_POST['code']) && $_POST['code']=='3'){
    echo 'you got it!';
}else{
    echo 'you sent something, please make it a "3"... :)';
}
?>
4

3 に答える 3

6

Selenium ブラウザー自動化フレームワークを検討してください。これにより、ページ間を移動し、条件を確認し、フォームに入力できます。非常に安定しており、非常に成熟しています。

http://seleniumhq.org/

于 2012-11-04T22:29:21.653 に答える
2

この種のテストを実行するには、ブラウザをプログラムで制御する方法を検討する必要があります。Seleniumは一般的なオプションであり、PHP バインディングがドキュメントに記載されています (ただし、通常は Perl または Python を使用します)。

于 2012-11-04T22:29:19.363 に答える
1

PHP ベースのソリューション:フロントエンドからはテストせず、サーバー バックエンドからのみテストするため、実際の入力をエミュレートしません。

JS:ページ間で保持されません。

したがって、ブラウザー拡張機能またはブラウザーから完全に分離されたスタンドアロン ユーティリティを探しています。

あなたは試すことができます:

  1. ただし、 Sikuliは一般的なものであり、Web ページではなく、一般的な GUI を対象としています。
  2. WatiN または Selenium
于 2012-11-04T22:30:19.227 に答える