官术网_书友最值得收藏!

Setting up Microsoft WebDriver for Microsoft Edge

Microsoft Edge is a new web browser launched with Microsoft Windows 10. Microsoft Edge implements the W3C WebDriver standard and provides in-built support for Selenium WebDriver.

Similar to Internet Explorer, in order to execute test scripts on the Microsoft Edge browser, we need to use EdgeDriver class and a standalone Microsoft WebDriver Server executable.

Microsoft WebDriver Server is maintained by the Microsoft Edge development team. You can find more information at https://msdn.microsoft.com/en-us/library/mt188085(v=vs.85).aspx.

Let's set up Microsoft WebDriver Server and create a test for testing the search feature on Microsoft Edge.

Getting ready

You need to download and install Microsoft WebDriver Server on Windows 10 from https://www.microsoft.com/en-us/download/details.aspx?id=48212.

How to do it...

Add a new test and name it as GoogleSearchTestOnEdge.java and add the following code:

package com.secookbook.examples.chapter01;

import static org.junit.Assert.*;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.edge.EdgeOptions;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;

public class GoogleSearchTestOnEdge {

  private WebDriver driver;

  @Before
  public void setUp() {
    System.setProperty("webdriver.edge.driver",
        "C:\\Program Files (x86)\\Microsoft Web Driver\\MicrosoftWebDriver.exe");

    EdgeOptions options = new EdgeOptions();
    options.setPageLoadStrategy("eager");

    // Launch a new Edge instance
    driver = new EdgeDriver(options);

    // Navigate to Google
    driver.get("http://www.google.com");
  }

  @Test
  public void testGoogleSearch() {
    // Find the text input element by its name
    WebElement element = driver.findElement(By.name("q"));

    // Clear the existing text value
    element.clear();

    // Enter something to search for
    element.sendKeys("Selenium testing tools cookbook");

    WebElement button = driver.findElement(By.name("btnG"));
    button.click();

    // Google's search is rendered dynamically with JavaScript.
    // Wait for the page to load, timeout after 10 seconds
    new WebDriverWait(driver, 10).until(new ExpectedCondition<Boolean>() {
      public Boolean apply(WebDriver d) {
        return d.getTitle().toLowerCase()
            .startsWith("selenium testing tools cookbook");
      }
    });

    assertEquals("Selenium testing tools cookbook - Google Search",
        driver.getTitle());
  }
  @After
  public void tearDown() throws Exception {
    // Close the browser
    driver.quit();
  }
}

Execute this test and you will see a Microsoft Edge window being launched and all the steps executed.

How it works...

Microsoft WebDriver Server is a standalone server executable that implements WebDriver's JSON-wire protocol, that works as a glue between the test script and the Microsoft Edge browser, as shown in the following diagram:

How it works...

The tests should specify the path of Microsoft WebDriver Server executable before creating the instance of Microsoft Edge. This is done by setting the webdriver.edge.driver property as shown in the following code:

System.setProperty("webdriver.edge.driver",
        "C:\\Program Files (x86)\\Microsoft Web Driver\\MicrosoftWebDriver.exe");

Tip

We can also specify a path externally through the –Dwebdriver.edge.driver option using the Maven command line options. In this case, we don't need to set up this property in test.

主站蜘蛛池模板: 屏南县| 乌拉特前旗| 晴隆县| 班玛县| 中方县| 墨脱县| 平遥县| 莒南县| 淳化县| 军事| 泗水县| 普格县| 偏关县| 镇赉县| 宁国市| 蓬安县| 金川县| 奈曼旗| 进贤县| 沁源县| 镇雄县| 中山市| 丰都县| 崇仁县| 沙河市| 宣化县| 淅川县| 铜梁县| 北流市| 天水市| 康定县| 濮阳市| 黎城县| 肇东市| 石屏县| 德州市| 安吉县| 乌什县| 玛沁县| 遂川县| 桦南县|