• Selenium Video Tutorials

Selenium - 多瀏覽器測試



使用者可以同時在多個瀏覽器中執行指令碼。為了演示,我們將使用與 Selenium Grid 中相同的場景。在 Selenium Grid 示例中,我們遠端執行了指令碼;在這裡,我們將本地執行指令碼。

首先,確保已下載相應的驅動程式。請參考“Selenium Grid”章節下載 IE 和 Chrome 驅動程式。

示例

為了演示,我們將同時在所有瀏覽器中執行百分比計算器。

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 檔案並選擇“Run As”>>“TestNG”套件來執行指令碼,如下所示。

selenium_ide_139

輸出

所有瀏覽器將同時啟動,結果將列印在控制檯中。

注意 - 要成功地在 IE 上執行,請確保“IE 選項”的安全選項卡下“啟用保護模式”複選框在所有區域中均已選中或未選中。

selenium_ide_170

可以以 HTML 格式檢視 TestNG 結果,以便進行詳細分析。

selenium_ide_171
selenium_test_design_techniques.htm
廣告
© . All rights reserved.