Interface WebDriver

  • All Superinterfaces:
    SearchContext

    public interface WebDriver
    extends SearchContext
    WebDriver is a remote control interface that enables introspection and control of user agents (browsers). The methods in this interface fall into three categories:
    • Control of the browser itself
    • Selection of WebElements
    • Debugging aids

    Key methods are get(String), which is used to load a new web page, and the various methods similar to findElement(By), which is used to find WebElements.

    Currently, you will need to instantiate implementations of this interface directly. It is hoped that you write your tests against this interface so that you may "swap in" a more fully featured browser when there is a requirement for one.

    Most implementations of this interface follow W3C WebDriver specification

    • Method Detail

      • get

        void get​(java.lang.String url)
        Load a new web page in the current browser window. This is done using an HTTP POST operation, and the method will block until the load is complete (with the default 'page load strategy'. This will follow redirects issued either by the server or as a meta-redirect from within the returned HTML. Should a meta-redirect "rest" for any duration of time, it is best to wait until this timeout is over, since should the underlying page change whilst your test is executing the results of future calls against this interface will be against the freshly loaded page. Synonym for WebDriver.Navigation.to(String).

        See W3C WebDriver specification for more details.

        Parameters:
        url - The URL to load. Must be a fully qualified URL
        See Also:
        PageLoadStrategy
      • getCurrentUrl

        java.lang.String getCurrentUrl()
        Get a string representing the current URL that the browser is looking at.

        See W3C WebDriver specification for more details.

        Returns:
        The URL of the page currently loaded in the browser
      • getTitle

        java.lang.String getTitle()
        Get the title of the current page.

        See W3C WebDriver specification for more details.

        Returns:
        The title of the current page, with leading and trailing whitespace stripped, or null if one is not already set
      • findElements

        java.util.List<WebElement> findElements​(By by)
        Find all elements within the current page using the given mechanism. This method is affected by the 'implicit wait' times in force at the time of execution. When implicitly waiting, this method will return as soon as there are more than 0 items in the found collection, or will return an empty list if the timeout is reached.

        See W3C WebDriver specification for more details.

        Specified by:
        findElements in interface SearchContext
        Parameters:
        by - The locating mechanism to use
        Returns:
        A list of all matching WebElements, or an empty list if nothing matches
        See Also:
        By, WebDriver.Timeouts
      • findElement

        WebElement findElement​(By by)
        Find the first WebElement using the given method. This method is affected by the 'implicit wait' times in force at the time of execution. The findElement(..) invocation will return a matching row, or try again repeatedly until the configured timeout is reached.

        findElement should not be used to look for non-present elements, use findElements(By) and assert zero length response instead.

        See W3C WebDriver specification for more details.

        Specified by:
        findElement in interface SearchContext
        Parameters:
        by - The locating mechanism to use
        Returns:
        The first matching element on the current page
        Throws:
        NoSuchElementException - If no matching elements are found
        See Also:
        By, WebDriver.Timeouts
      • getPageSource

        java.lang.String getPageSource()
        Get the source of the last loaded page. If the page has been modified after loading (for example, by Javascript) there is no guarantee that the returned text is that of the modified page. Please consult the documentation of the particular driver being used to determine whether the returned text reflects the current state of the page or the text last sent by the web server. The page source returned is a representation of the underlying DOM: do not expect it to be formatted or escaped in the same way as the response sent from the web server. Think of it as an artist's impression.

        See W3C WebDriver specification for more details.

        Returns:
        The source of the current page
      • close

        void close()
        Close the current window, quitting the browser if it's the last window currently open.

        See W3C WebDriver specification for more details.

      • quit

        void quit()
        Quits this driver, closing every associated window.
      • getWindowHandles

        java.util.Set<java.lang.String> getWindowHandles()
        Return a set of window handles which can be used to iterate over all open windows of this WebDriver instance by passing them to switchTo().WebDriver.Options.window()

        See W3C WebDriver specification for more details.

        Returns:
        A set of window handles which can be used to iterate over all open windows.
      • getWindowHandle

        java.lang.String getWindowHandle()
        Return an opaque handle to this window that uniquely identifies it within this driver instance. This can be used to switch to this window at a later date

        See W3C WebDriver specification for more details.

        Returns:
        the current window handle
      • navigate

        WebDriver.Navigation navigate()
        An abstraction allowing the driver to access the browser's history and to navigate to a given URL.
        Returns:
        A WebDriver.Navigation that allows the selection of what to do next