処理する方法 Selenium アラートとポップアップ?
アラートとは何ですか Selenium?
An アラートイン Selenium 画面上に表示される小さなメッセージ ボックスで、ユーザーに何らかの情報や通知を提供します。特定の情報やエラーをユーザーに通知し、特定のタスクを実行する許可を求め、警告メッセージも提供します。
このチュートリアルでは、ポップアップを処理する方法を学びます。 Selenium Web アプリケーションで見つかるさまざまな種類のアラート テスト。また、アラートを処理する方法についても説明します。 Selenium WebDriver を学習し、アラートの種類に応じてアラートを受け入れる方法と拒否する方法を学びます。
アラートの種類 Selenium
1) Simple Alert
シンプルなアラートクラス Selenium 画面上に何らかの情報または警告が表示されます。
2) Prompt Alert
この Prompt Alert ユーザーからの入力を求め、 Selenium webdriver は sendkeys(" input…. ") を使用してテキストを入力できます。
3) Confirmation Alert
この確認アラートは、何らかの操作を実行するための許可を求めます。
でのアラートの処理方法 Selenium webdriver
アラート インターフェイスには、広く使用されている以下のいくつかのメソッドが用意されています。 Selenium ウェブドライバー.
1) 無効な却下() // アラートの「キャンセル」ボタンをクリックします。
driver.switchTo().alert().dismiss();
2) void accept()// アラートの「OK」ボタンをクリックします。
driver.switchTo().alert().accept();
3) 文字列 getText() // アラート メッセージをキャプチャします。
driver.switchTo().alert().getText();
4) void sendKeys(String stringToSend) // アラートボックスにデータを送信します。
driver.switchTo().alert().sendKeys("Text");
下の画面に示すように、いくつかのアラート方法が表示されます。 Eclipse.
次を使用すると、メイン ウィンドウからアラートに簡単に切り替えることができます。 Seleniumさん 。切り替える() 方法。
次に、以下のシナリオを自動化します。
このシナリオでは、Guru99 デモ サイトを使用して説明します。 Selenium アラートの処理。
ステップ1) Webブラウザを起動してサイトを開く https://demo.guru99.com/test/delete_customer.php
ステップ2) 任意の顧客 ID を入力します。
ステップ3) 顧客IDを入力後、「送信」ボタンをクリックしてください。
ステップ4) アラートを拒否/受け入れます。
アラートの処理 Selenium ウェブドライバー
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.NoAlertPresentException; import org.openqa.selenium.Alert; public class AlertDemo { public static void main(String[] args) throws NoAlertPresentException,InterruptedException { System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); // Alert Message handling driver.get("https://demo.guru99.com/test/delete_customer.php"); driver.findElement(By.name("cusid")).sendKeys("53920"); driver.findElement(By.name("submit")).submit(); // Switching to Alert Alert alert = driver.switchTo().alert(); // Capturing alert message. String alertMessage= driver.switchTo().alert().getText(); // Displaying alert message System.out.println(alertMessage); Thread.sleep(5000); // Accepting alert alert.accept(); } }
出力:
上記のコードを実行すると、サイトが起動します。画面に表示される確認アラートを処理し、アプリケーションから顧客 ID を削除して、顧客 ID を削除してみます。
ポップアップウィンドウを使用して処理する方法 Selenium ウェブドライバー
自動化において、Webアプリケーションに複数のウィンドウがある場合、アクティビティは操作を完了するために複数のウィンドウ間で制御を切り替える必要がある場合があります。操作が完了したら、メインウィンドウ、つまり親ウィンドウに戻る必要があります。 Selenium。これについては、この記事で例を挙げて詳しく説明します。
In Selenium Web ドライバーには、複数のウィンドウを処理できる方法があります。
Driver.getWindowHandles();
ウェブドライバで開かれているすべてのウィンドウを処理するには、「Driver.getWindowHandles()」を使用し、ウェブアプリケーションでウィンドウをあるウィンドウから別のウィンドウに切り替えることができます。戻り値の型はIteratorです。 。
Driver.getWindowHandle();
サイトが開いたら、メイン ウィンドウを次のように処理する必要があります。 driver.getWindowHandle()。 これにより、このドライバー インスタンス内で一意に識別される現在のウィンドウが処理されます。 戻り値の型は String です。
でのウィンドウ処理の場合 Selenium, 以下の手順に従います。
ここでは、以下のシナリオを自動化して、複数のウィンドウをどのように処理するかを確認します。 Selenium ウェブドライバー。
このシナリオでは、「Guru99」デモ サイトを使用してウィンドウ処理を説明します。
ステップ1) サイトを起動します。
ブラウザを起動してサイトを開く https://demo.guru99.com/popup.php
ステップ2) 「ここをクリック」というリンクをクリックします。
ユーザーが「ここをクリック」リンクをクリックすると、新しい子ウィンドウが開きます。
ステップ3) 新しい子ウィンドウが開きます。
新しいウィンドウが開き、ユーザーにメール ID を入力してページを送信するように要求します。
ステップ4) メールIDを入力して送信してください。
ステップ5) ページの送信時にアクセス認証情報を表示します。
コードを実行すると、子ウィンドウが新しいタブで開いていることがわかります。
- 資格情報が表示されている子ウィンドウを閉じます。
- 親ウィンドウに切り替えます。
複数の処理方法 Windows in Selenium
import java.util.Iterator; import java.util.Set; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class WindowHandle_Demo { public static void main(String[] args) throws InterruptedException { WebDriver driver=new FirefoxDriver(); //Launching the site. driver.get("https://demo.guru99.com/popup.php"); driver.manage().window().maximize(); driver.findElement(By.xpath("//*[contains(@href,'popup.php')]")).click(); String MainWindow=driver.getWindowHandle(); // To handle all new opened window. Set<String> s1=driver.getWindowHandles(); Iterator<String> i1=s1.iterator(); while(i1.hasNext()) { String ChildWindow=i1.next(); if(!MainWindow.equalsIgnoreCase(ChildWindow)) { // Switching to Child window driver.switchTo().window(ChildWindow); driver.findElement(By.name("emailid")) .sendKeys("gaurav.3n@gmail.com"); driver.findElement(By.name("btnLogin")).click(); // Closing the Child Window. driver.close(); } } // Switching to Parent window i.e Main Window. driver.switchTo().window(MainWindow); } }
出力:
上記のコードを実行すると、サイトが起動し、「ここをクリック」というリンクをクリックすると、新しいタブに子ウィンドウが開きます。操作が完了したら、子ウィンドウを閉じて親ウィンドウに切り替えることができます。これにより、アプリケーションで複数のウィンドウを処理できます。
まとめ:
- アラートの種類を定義し、スクリーンショットで示しました。
- アラートの処理をデモンストレーションしました Selenium 特定のシナリオを使用する WebDriver。
- 複数のウィンドウを処理 Selenium 特定のシナリオを使用する WebDriver。