処理する方法 Selenium アラートとポップアップ?

アラートとは何ですか Selenium?

An アラートイン Selenium 画面上に表示される小さなメッセージ ボックスで、ユーザーに何らかの情報や通知を提供します。特定の情報やエラーをユーザーに通知し、特定のタスクを実行する許可を求め、警告メッセージも提供します。

このチュートリアルでは、ポップアップを処理する方法を学びます。 Selenium Web アプリケーションで見つかるさまざまな種類のアラート テスト。また、アラートを処理する方法についても説明します。 Selenium WebDriver を学習し、アラートの種類に応じてアラートを受け入れる方法と拒否する方法を学びます。

アラートの種類 Selenium

1) Simple Alert

シンプルなアラートクラス Selenium 画面上に何らかの情報または警告が表示されます。

Simple Alert

2) Prompt Alert

この Prompt Alert ユーザーからの入力を求め、 Selenium webdriver は sendkeys(" input…. ") を使用してテキストを入力できます。

Prompt Alert

3) Confirmation Alert

この確認アラートは、何らかの操作を実行するための許可を求めます。

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さん 。切り替える() 方法。

アラートの処理 Selenium webdriver

次に、以下のシナリオを自動化します。

このシナリオでは、Guru99 デモ サイトを使用して説明します。 Selenium アラートの処理。

ステップ1) Webブラウザを起動してサイトを開く https://demo.guru99.com/test/delete_customer.php

ステップ2) 任意の顧客 ID を入力します。

アラートの処理 Selenium webdriver

ステップ3) 顧客IDを入力後、「送信」ボタンをクリックしてください。

アラートの処理 Selenium webdriver

ステップ4) アラートを拒否/受け入れます。

アラートの処理 Selenium webdriver

アラートの処理 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

ポップアップ ウィンドウを使用して処理する Selenium ウェブドライバー

ステップ2) 「ここをクリック」というリンクをクリックします。

ユーザーが「ここをクリック」リンクをクリックすると、新しい子ウィンドウが開きます。

ポップアップ ウィンドウを使用して処理する Selenium ウェブドライバー

ステップ3) 新しい子ウィンドウが開きます。

新しいウィンドウが開き、ユーザーにメール ID を入力してページを送信するように要求します。

ポップアップ ウィンドウを使用して処理する Selenium ウェブドライバー

ステップ4) メールIDを入力して送信してください。

ポップアップ ウィンドウを使用して処理する Selenium ウェブドライバー

ステップ5) ページの送信時にアクセス認証情報を表示します。

ポップアップ ウィンドウを使用して処理する Selenium ウェブドライバー

コードを実行すると、子ウィンドウが新しいタブで開いていることがわかります。

  1. 資格情報が表示されている子ウィンドウを閉じます。

ポップアップ ウィンドウを使用して処理する Selenium ウェブドライバー

  1. 親ウィンドウに切り替えます。

ポップアップ ウィンドウを使用して処理する Selenium ウェブドライバー

複数の処理方法 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
での複数ウィンドウの処理 Selenium

まとめ:

  • アラートの種類を定義し、スクリーンショットで示しました。
  • アラートの処理をデモンストレーションしました Selenium 特定のシナリオを使用する WebDriver。
  • 複数のウィンドウを処理 Selenium 特定のシナリオを使用する WebDriver。

続きを読む readmore

毎日のGuru99ニュースレター

今すぐ配信される最新かつ最も重要な AI ニュースで一日を始めましょう。