2

プログラムでJSアラートのOKボタンを押すにはどうすればよいですか?

やりたいこと: アラートが作成されるたびに、[OK] ボタンが押されます。

これは、Selenium RC を使用した UI テスト用です。

また、私はすでにチェックしました:Alert (Selenium IDE) 内の OK ボタンをクリックします

chooseOkOnNextConfirmation()編集:アラートを生成したボタンをクリックする前に、すでに使用して配置していました。ついでに置いてみました。何も機能しませんでした!

4

8 に答える 8

1

chooseOkOnNextConfirmation を使用すると、それを行うことができます。

selenium.chooseOkOnNextConfirmation();  // prepares Selenium to handle next alert
selenium.click(locator);
String alertText = selenium.getAlert(); // verifies that alert was shown
assertEquals("This is a popup window", alertText);

詳細については、このリンクリンクを参照してください

于 2012-05-25T10:05:14.537 に答える
0

selenium.chooseOkOnNextConfirmation(); Selenium RCで私のために働いています。

Alert OK ボタンのコードにコメントを付ける必要があります。

于 2014-05-27T03:38:40.097 に答える
0

できません。ブラウザを制御できるもの(セレンなど)を使用しない限り。

Seleniumを使用する場合は、アラート内の [OK] ボタンをクリックする (Selenium IDE) を参照してください。

于 2012-05-25T07:05:37.803 に答える
0

スペースバーまたはエンターキーのキープレスをシミュレートできる場合、アラートは無視されます。ただし、アラートがブロックされる傾向があるため、そもそもアラートが表示される原因が何であれ、外部からこれを行う方がよいでしょう。

これが JavaScript の場合は、 を使用した方がよい場合がありますconsole.log()

于 2012-05-25T07:07:46.630 に答える
0

実際に警告ダイアログが表示される場合は、それを行うことはできません。Selenium がそれを処理する必要があります。ただし、Seleniumのドキュメントに記載されているように:

Selenium は、(window.alert、window.confirm、window.prompt を置き換えることによって) これらのダイアログを隠そうとするため、ページの実行が停止することはありません。アラート ポップアップが表示される場合は、ページの読み込みプロセス中に発生した可能性があります。これは通常、ページを保護するには時期尚早です。

これは、Selenium RC (したがって、Selenium IDE も) の既知の制限であり、Selenium 2 (WebDriver) が開発された理由の 1 つです。JS アラートをキャッチする場合は、 WebDriverアラート処理onloadを使用する必要があります。

そうは言っても、Robotまたはselenium.keyPressNative()を使用して任意のテキストを入力し、 を押しEnterてダイアログを盲目的に確認できます。これは最もクリーンな方法ではありませんが、うまくいく可能性があります。alertただし、メッセージを取得することはできません。

Robotすべての便利なキーが定数にマップされているため、簡単です。ではASCII コードで動作するので、 pressやfor の値としてkeyPressNative()使いたいと思います。10Enter27Esc

于 2012-05-25T09:52:06.273 に答える
0
$this->chooseOkOnNextConfirmation();
$this->click('locator');
$this->getConfirmation();

上記のプロセスは、PHPUnitでSelenium RCを使用して機能しました

于 2015-01-30T21:57:16.527 に答える
0

スイフト3

このコードをアラートの表示とOKおよびキャンセルボタンで試してみたい

let sharephotoAction = UIAlertController.init(title: "Confirm Ticket", message:"Please Collect Your Ticket Before 1 Hours Ago in Location", preferredStyle: .alert )
        sharephotoAction.addAction(UIAlertAction(title: "Ok", style: .default, handler: { (alertAction) in

            _ = Timer.scheduledTimer(timeInterval: 0.5, target: self, selector: #selector(self.Save), userInfo: nil, repeats: false)

        }))
        sharephotoAction.addAction(UIAlertAction(title: "Cancle", style: .default, handler:nil))

        self.present(sharephotoAction, animated: true, completion:nil)
于 2017-05-18T10:09:12.193 に答える
-1

GSEvent.h を使用して、任意のタイプのキープレス イベントを処理できます。GraphicsServices フレームワークで利用できます。プライベート フレームワークです (そのため、appstore に送信することはできません)。

于 2013-12-11T08:55:21.817 に答える