1

私はJava言語でSeleniumWebドライバーを使用しています。ポップアップに2つのボタンがある場合、つまり[OK]と[キャンセル]の場合、次のコードを使用してWebドライバーで簡単に処理できます。

Alert alert = driver.switchTo().alert();
alert.accept(); // or alert.dismiss(); depending upon the action u want to perform.

しかし、ボタンが3つ以上ある場合、つまりポップアップに3〜4個のボタンがある場合(たとえば、[OK]、[キャンセル]、[再試行]、[無視/続行]など)、どうすればよいでしょうか。必要なボタンをどのようにクリックできますか?

よろしくお願いします

4

2 に答える 2

2

私たちが話しているのは、JavaScriptのダイアログポップアップです。alert([OK]ボタンがあります)、 confirm([OK /キャンセル]があります)、(prompt入力フィールドと[OK]があります)があります。これ以上何もない。したがって、表示されているダイアログはJavaScriptダイアログではなく、SeleniumのAlertインターフェースでは処理できません。

次の2つのうちの1つを扱っている可能性があります。

  1. dialog()jQuery (または同様のもの)のようなカスタムダイアログ。それは良いニュースです!これは実際のポップアップではなく、ダイアログのように見えるように作成された通常のHTMLで構成される適切に設計されたオーバーレイです。これは、WebDriverの通常の方法で操作できるはずです。選択したツールを使用して要素を調べ、クリックする必要のあるボタンを見つけてクリックします。
  2. ネイティブブラウザまたはオペレーティングシステムのダイアログ(たとえば、ダウンロードダイアログ)。WebDriverはこれらを処理できないため、これは悪いニュースです。さらに、ブラウザ/システム/言語設定によって外観が異なる傾向があるため、すべてのケースを検出して処理する必要があります。オプションは次のとおりです。
    • このRobotクラスでは、プログラムでキーボード上のあらゆるものを「押す」(または盲目的にクリックする)ことができるため、たとえばを押すことでダイアログを取り除くことができます。Enter
    • AutoIt。これは、システムレベルの自動化を処理するのに役立つWindowsプログラムです。
    • それは多かれ少なかれそれです。特に処理しているダイアログを指定でき、より適切な回避策を考え出すことができる場合があります。たとえば、ダウンロードダイアログを完全に回避することができます。
于 2012-07-06T08:01:45.317 に答える
0

ネイティブブラウザのポップアップダイアログを処理する場合にのみalert()を使用する必要があります。テスト対象のWebアプリでHTMLダイアログが表示された場合は、要素ID、xpath、CSSセレクターなどを使用して任意のボタンを選択してクリックできます。

于 2012-07-06T07:04:14.750 に答える