Selenium-multi-browser-testing

提供:Dev Guides
移動先:案内検索

Selenium-マルチブラウザテスト

ユーザーは、複数のブラウザーで同時にスクリプトを実行できます。 デモンストレーションでは、Selenium Gridで使用したのと同じシナリオを使用します。 Selenium Gridの例では、スクリプトをリモートで実行しました。ここで、スクリプトをローカルで実行します。

まず、適切なドライバーがダウンロードされていることを確認してください。 IEおよびChromeドライバーのダウンロードについては、「Selenium Grid」の章を参照してください。

デモのために、すべてのブラウザーで同時にパーセント計算を実行します。

package TestNG;

import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.*;
import org.testng.annotations.*;

public class TestNGClass {
   private WebDriver driver;
   private String URL = "http://www.calculator.net";

   @Parameters("browser")
   @BeforeTest
   public void launchapp(String browser) {

      if (browser.equalsIgnoreCase("firefox")) {
         System.out.println(" Executing on FireFox");
         driver = new FirefoxDriver();
         driver.get(URL);
         driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
         driver.manage().window().maximize();
      } else if (browser.equalsIgnoreCase("chrome")) {
         System.out.println(" Executing on CHROME");
         System.out.println("Executing on IE");
         System.setProperty("webdriver.chrome.driver", "D:\\chromedriver.exe");
         driver = new ChromeDriver();
         driver.get(URL);
         driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
         driver.manage().window().maximize();
      } else if (browser.equalsIgnoreCase("ie")) {
         System.out.println("Executing on IE");
         System.setProperty("webdriver.ie.driver", "D:\\IEDriverServer.exe");
         driver = new InternetExplorerDriver();
         driver.get(URL);
         driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
         driver.manage().window().maximize();
      } else {
         throw new IllegalArgumentException("The Browser Type is Undefined");
      }
   }

   @Test
   public void calculatepercent() {
     //Click on Math Calculators
      driver.findElement(By.xpath(".//*[@id = 'menu']/div[3]/a")).click();

     //Click on Percent Calculators
      driver.findElement(By.xpath(".//*[@id = 'menu']/div[4]/div[3]/a")).click();

     //Enter value 10 in the first number of the percent Calculator
      driver.findElement(By.id("cpar1")).sendKeys("10");

     //Enter value 50 in the second number of the percent Calculator
      driver.findElement(By.id("cpar2")).sendKeys("50");

     //Click Calculate Button
      driver.findElement(By.xpath(".//*[@id = 'content']/table/tbody/tr/td[2]/input")).click();

     //Get the Result Text based on its xpath
      String result =
         driver.findElement(By.xpath(".//*[@id = 'content']/p[2]/span/font/b")).getText();

     //Print a Log In message to the screen
      System.out.println(" The Result is " + result);

      if(result.equals("5")) {
         System.out.println(" The Result is Pass");
      } else {
         System.out.println(" The Result is Fail");
      }
   }

   @AfterTest
   public void closeBrowser() {
      driver.close();
   }
}

ブラウザ名をパラメータ化するのに役立つXMLを作成し、すべてのブラウザで同時に実行するためにparallel = "tests"を忘れずに記載してください。

selenium_ide_169

XMLファイルを右クリックしてスクリプトを実行し、以下に示すように「実行」>>「TestNG」スイートを選択します。

selenium_ide_139

出力

すべてのブラウザーが同時に起動され、結果がコンソールに出力されます。

-IEで正常に実行するには、「IEオプション」のセキュリティタブの下にある「保護モードを有効にする」チェックボックスがすべてのゾーンでオンまたはオフになっていることを確認します。

selenium_ide_170

TestNGの結果は、詳細な分析のためにHTML形式で表示できます。

selenium_ide_171