<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 使用 Selenium WebDriver 進行跨瀏覽器測試 > 原文: [https://www.guru99.com/cross-browser-testing-using-selenium.html](https://www.guru99.com/cross-browser-testing-using-selenium.html) ## 什么是跨瀏覽器測試? **跨瀏覽器測試**是一種功能測試,用于檢查您的 Web 應用程序是否可以在不同的瀏覽器中正常工作。 ![Cross Browser Testing using Selenium WebDriver](https://img.kancloud.cn/a1/b3/a1b3ea036fad98b7e4a9235397ed2404_421x298.png "Cross Browser Testing using Selenium") ## 為什么我們需要跨瀏覽器測試? 基于 Web 的應用程序與 Windows 應用程序完全不同。 最終用戶可以在任何瀏覽器中打開 Web 應用程序。 例如,某些人喜歡在 **Firefox 瀏覽器**中打開 [**https://twitter.com**](https://twitter.com) ,而其他人則可以使用 **Chrome 瀏覽器** 或 **IE** 。 在下圖中,您可以看到在 **IE** 中,Twitter 的登錄框并未在所有角落顯示曲線,但是我們可以在 Chrome 瀏覽器中看到它。 ![Cross Browser Testing using Selenium WebDriver](https://img.kancloud.cn/2d/d8/2dd84d796b1809fbc1412a8adac4219f_624x329.png "Cross Browser Testing using Selenium") 因此,我們需要確保該 Web 應用程序能夠在所有流行的瀏覽器中正常運行,以便更多的人可以訪問和使用它。 此動機可以通過產品的跨瀏覽器[測試](/software-testing.html)來實現。 **原因跨瀏覽器問題** 1. 在不同的瀏覽器中字體大小不匹配。 2. JavaScript 的實現可以不同。 3. CSS,HTML 驗證差異可能存在。 4. 一些瀏覽器仍然不支持 HTML5。 5. 頁面對齊方式和 div 大小。 6. 圖像方向。 7. 瀏覽器與操作系統不兼容。 等等 ## 如何執行跨瀏覽器測試 如果我們使用的是 Selenium WebDriver,則可以使用 Internet Explorer,FireFox,Chrome,Safari 瀏覽器自動執行測試用例。 要在同一臺計算機上同時使用不同的瀏覽器執行測試用例,我們可以將 [Testng](/all-about-testng-and-selenium.html) 框架與 Selenium WebDriver 集成在一起。 您的 testing.xml 看起來像這樣, ![Cross Browser Testing using Selenium WebDriver](https://img.kancloud.cn/3f/45/3f45ea6d2233f1662d959383c9d4feb1_624x304.png "Cross Browser Testing using Selenium") 此 testing.xml 將與[測試用例](/test-case.html)映射,如下所示 ![Cross Browser Testing using Selenium WebDriver](https://img.kancloud.cn/2b/ec/2becdbf3754613a4a6925a9b7c187afc_599x223.png "Cross Browser Testing using Selenium") 這里,因為 testing.xml 具有兩個測試標簽(“ ChromeTest”,“ FirefoxTest”),所以此測試用例將針對 2 個不同的瀏覽器執行兩次。 首次測試“ ChromeTest”會將參數“瀏覽器”的值傳遞為“ chrome”,因此將執行 ChromeDriver。 該測試用例將在 Chrome 瀏覽器上運行。 第二個測試“ FirefoxTest”將參數“ browser”的值傳遞為“ Firefox”,因此將執行 FirefoxDriver。 該測試用例將在 FireFox 瀏覽器上運行。 完整的代碼: **Guru99CrossBrowserScript.java** ``` package parallelTest; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.edge.EdgeDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.annotations.BeforeTest; import org.testng.annotations.Parameters; import org.testng.annotations.Test; public class CrossBrowserScript { WebDriver driver; /** * This function will execute before each Test tag in testng.xml * @param browser * @throws Exception */ @BeforeTest @Parameters("browser") public void setup(String browser) throws Exception{ //Check if parameter passed from TestNG is 'firefox' if(browser.equalsIgnoreCase("firefox")){ //create firefox instance System.setProperty("webdriver.gecko.driver", ".\\geckodriver.exe"); driver = new FirefoxDriver(); } //Check if parameter passed as 'chrome' else if(browser.equalsIgnoreCase("chrome")){ //set path to chromedriver.exe System.setProperty("webdriver.chrome.driver",".\\chromedriver.exe"); //create chrome instance driver = new ChromeDriver(); } //Check if parameter passed as 'Edge' else if(browser.equalsIgnoreCase("Edge")){ //set path to Edge.exe System.setProperty("webdriver.edge.driver",".\\MicrosoftWebDriver.exe"); //create Edge instance driver = new EdgeDriver(); } else{ //If no browser passed throw exception throw new Exception("Browser is not correct"); } driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); } @Test public void testParameterWithXML() throws InterruptedException{ driver.get("http://demo.guru99.com/V4/"); //Find user name WebElement userName = driver.findElement(By.name("uid")); //Fill user name userName.sendKeys("guru99"); //Find password WebElement password = driver.findElement(By.name("password")); //Fill password password.sendKeys("guru99"); } } ``` **testing.xml** ``` <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="TestSuite" thread-count="2" parallel="tests" > <test name="ChromeTest"> <parameter name="browser" value="Chrome" /> <classes> <class name="parallelTest.CrossBrowserScript"> </class> </classes> </test> <test name="FirefoxTest"> <parameter name="browser" value="Firefox" /> <classes> <class name="parallelTest.CrossBrowserScript"> </class> </classes> </test> <test name="EdgeTest"> <parameter name="browser" value="Edge" /> <classes> <class name="parallelTest.CrossBrowserScript"> </class> </classes> </test> </suite> ``` **注意:**要運行測試,請右鍵單擊 **testing.xml,**選擇運行方式,然后單擊 TestNG。 ![Cross Browser Testing using Selenium WebDriver](https://img.kancloud.cn/81/33/8133edf5f6b56a8d3ae9cf51a6de9af3_624x342.png "Cross Browser Testing using Selenium") 摘要 1. 跨瀏覽器測試是一種使用不同的 Web 瀏覽器測試 Web 應用程序的技術。 2. 硒可以支持不同類型的瀏覽器以實現自動化。 3. 硒可以與 TestNG 集成在一起以執行多瀏覽器測試。 4. 從 testing.xml 中的參數,我們可以傳遞瀏覽器名稱,在測試案例中,我們可以相應地創建 WebDriver 引用。 **注意:**該給定程序是在硒 3.0.1,Chrome 56.0.2924.87 和 Firefox 47.0.2 & Microsoft Edge 14.14393 上測試的,內置&。 如果程序出現錯誤,請更新驅動程序 [在本教程中下載用于演示的 Selenium 項目文件](https://drive.google.com/uc?export=download&id=0ByI5-ZLwpo25WGJkWElMN051NE0)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看