Class WebDriverRunner

  • All Implemented Interfaces:
    Browsers

    public class WebDriverRunner
    extends java.lang.Object
    implements Browsers
    A static facade for accessing WebDriver instance for current threads
    • Constructor Summary

      Constructors 
      Constructor Description
      WebDriverRunner()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static void addListener​(org.openqa.selenium.support.events.WebDriverEventListener listener)
      Use this method BEFORE opening a browser to add custom event listeners to webdriver.
      static void clearBrowserCache()
      Delete all the browser cookies
      static void closeWebDriver()
      Close the browser if it's open.
      static void closeWindow()
      Close the current window, quitting the browser if it's the last window currently open.
      static java.lang.String currentFrameUrl()  
      static Driver driver()  
      static org.openqa.selenium.WebDriver getAndCheckWebDriver()
      Get the underlying instance of Selenium WebDriver, and assert that it's still alive.
      static SelenideProxyServer getSelenideProxy()
      Get selenide proxy.
      static org.openqa.selenium.WebDriver getWebDriver()
      Get the underlying instance of Selenium WebDriver.
      static boolean hasWebDriverStarted()  
      static boolean isChrome()
      Is Selenide configured to use Chrome browser
      static boolean isEdge()
      Is Selenide configured to use Microsoft EDGE browser
      static boolean isFirefox()
      Is Selenide configured to use Firefox browser
      static boolean isHeadless()
      Is Selenide configured to use headless browser
      static boolean isIE()
      Is Selenide configured to use Internet Explorer browser
      static boolean isLegacyFirefox()
      Is Selenide configured to use legacy Firefox driver
      static boolean isOpera()
      Is Selenide configured to use Opera browser
      static void setProxy​(org.openqa.selenium.Proxy webProxy)
      Sets Selenium Proxy instance
      static void setWebDriver​(org.openqa.selenium.WebDriver webDriver)
      Tell Selenide use your provided WebDriver instance.
      static void setWebDriver​(org.openqa.selenium.WebDriver webDriver, SelenideProxyServer selenideProxy)  
      static java.lang.String source()  
      static boolean supportsJavascript()
      Does this browser support javascript
      static java.lang.String url()  
      static void using​(org.openqa.selenium.WebDriver driver, java.lang.Runnable lambda)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • WebDriverRunner

        public WebDriverRunner()
    • Method Detail

      • addListener

        public static void addListener​(org.openqa.selenium.support.events.WebDriverEventListener listener)
        Use this method BEFORE opening a browser to add custom event listeners to webdriver.
        Parameters:
        listener - your listener of webdriver events
      • setWebDriver

        public static void setWebDriver​(org.openqa.selenium.WebDriver webDriver)
        Tell Selenide use your provided WebDriver instance. Use it if you need a custom logic for creating WebDriver.

        It's recommended not to use implicit wait with this driver, because Selenide handles timing issues explicitly.

        NB! Be sure to call this method before calling open(url). Otherwise Selenide will create its own WebDriver instance and would not close it.

        NB! When using your custom webdriver, you are responsible for closing it. Selenide will not take care of it.

        NB! Webdriver instance should be created and used in the same thread. A typical error is to create webdriver instance in one thread and use it in another. Selenide does not support it. If you really need using multiple threads, please use #com.codeborne.selenide.WebDriverProvider

        P.S. Alternatively, you can run tests with system property

          -Dbrowser=com.my.WebDriverFactory

        which should implement interface #com.codeborne.selenide.WebDriverProvider

      • setWebDriver

        public static void setWebDriver​(org.openqa.selenium.WebDriver webDriver,
                                        SelenideProxyServer selenideProxy)
      • getWebDriver

        public static org.openqa.selenium.WebDriver getWebDriver()
        Get the underlying instance of Selenium WebDriver. This can be used for any operations directly with WebDriver.
      • setProxy

        public static void setProxy​(org.openqa.selenium.Proxy webProxy)
        Sets Selenium Proxy instance
      • getAndCheckWebDriver

        public static org.openqa.selenium.WebDriver getAndCheckWebDriver()
        Get the underlying instance of Selenium WebDriver, and assert that it's still alive.
        Returns:
        new instance of WebDriver if the previous one has been closed meanwhile.
      • getSelenideProxy

        public static SelenideProxyServer getSelenideProxy()
        Get selenide proxy. It's activated only if Configuration.proxyEnabled == true
        Returns:
        null if proxy server is not started
      • driver

        public static Driver driver()
      • closeWindow

        public static void closeWindow()
        Close the current window, quitting the browser if it's the last window currently open.
        See Also:
        WebDriver.close()
      • closeWebDriver

        public static void closeWebDriver()

        Close the browser if it's open.


        NB! Method quits this driver, closing every associated window.

        See Also:
        WebDriver.quit()
      • hasWebDriverStarted

        public static boolean hasWebDriverStarted()
        Returns:
        true if instance of Selenium WebDriver is started in current thread
      • using

        public static void using​(org.openqa.selenium.WebDriver driver,
                                 java.lang.Runnable lambda)
      • isFirefox

        public static boolean isFirefox()
        Is Selenide configured to use Firefox browser
      • isLegacyFirefox

        public static boolean isLegacyFirefox()
        Is Selenide configured to use legacy Firefox driver
      • isChrome

        public static boolean isChrome()
        Is Selenide configured to use Chrome browser
      • isIE

        public static boolean isIE()
        Is Selenide configured to use Internet Explorer browser
      • isEdge

        public static boolean isEdge()
        Is Selenide configured to use Microsoft EDGE browser
      • isHeadless

        public static boolean isHeadless()
        Is Selenide configured to use headless browser
      • supportsJavascript

        public static boolean supportsJavascript()
        Does this browser support javascript
      • isOpera

        public static boolean isOpera()
        Is Selenide configured to use Opera browser
      • clearBrowserCache

        public static void clearBrowserCache()
        Delete all the browser cookies
      • source

        public static java.lang.String source()
        Returns:
        the source (HTML) of current page
      • url

        public static java.lang.String url()
        Returns:
        the URL of current page
      • currentFrameUrl

        public static java.lang.String currentFrameUrl()
        Returns:
        the URL of current frame