Class VerisoftDriver
- java.lang.Object
-
- co.verisoft.fw.selenium.drivers.VerisoftDriver
-
- All Implemented Interfaces:
org.openqa.selenium.HasCapabilities,org.openqa.selenium.interactions.Interactive,org.openqa.selenium.JavascriptExecutor,org.openqa.selenium.PrintsPage,org.openqa.selenium.SearchContext,org.openqa.selenium.TakesScreenshot,org.openqa.selenium.virtualauthenticator.HasVirtualAuthenticator,org.openqa.selenium.WebDriver,org.openqa.selenium.WrapsDriver
- Direct Known Subclasses:
VerisoftMobileDriver
public class VerisoftDriver extends Object implements org.openqa.selenium.WebDriver, org.openqa.selenium.JavascriptExecutor, org.openqa.selenium.HasCapabilities, org.openqa.selenium.virtualauthenticator.HasVirtualAuthenticator, org.openqa.selenium.interactions.Interactive, org.openqa.selenium.PrintsPage, org.openqa.selenium.TakesScreenshot, org.openqa.selenium.WrapsDriver
VeriSoft driver. A top level object which handles all types of WebDriver interfaces -
1. Local and Remote
2. All Apppium and Selenium based drivers (Web and mobile are currently supported)
VeriSoft driver is a concrete class which implements a variety of interfaces (which makes it easier not having to perform castings on many operations).
I supports local creation of local WebDriver objects using WebDriverManager package (see more about WebDriverManager at WebDriverManager Github Repository )
It also supports creation of remote WebDriver objects using the built-in Selenium mechanism. VeriSoftDriver follows the RemoteWebDriver.java architecture, and actually stores an instance of RemoteWebDriver in it.
VerisoftDriver implements the WebDriver behavior, and in addition, it also adds some functionality. The main additional functionalities which are currently supported:
1. Async operations. See async operation in the "See Also" section
2. Extended logging
3. All available events included within the Selenium framework are registered. See events in the "See Also" section
4. WebDriver is wrapped with EventFiringDecorator. See in the "See Also" section
The driver is instanciated by specifying the relevant DesiredCapabilities, and if the driver is a remote driver, specifying remote url. All of VeriSoft's ctors expectes at least a DesiredCapabilities object.
All other inner WebDriver class are also implemented as delegate classes.
TODO Add support to client-server drives e.g WinAppDriver and Winium TODO Add additional drivers support such as dockers (see Selenium-Jupiter for a list of supported drivers) TODO Find ways to add unit tests to this class (it is heavily dependened on OS, external SW etc.). Maybe dockers?
Example 1 - Creating a local VerisoftDriver with firefox as driver:
DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("browserName", "firefox"); WebDriver driver = new VerisoftDriver(capabilities); driver.get("http://www.google.com"); String title = driver.getTitle(); if (title == "Google") System.out.println("We are in Google homepage"); driver.close();
Example 2 - Creating a remote VerisoftDriver with safari as driver:
DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("browserName", "safari"); WebDriver driver = new VerisoftDriver("http://remote-url-address:port", capabilities); driver.get("http://www.google.com"); String title = driver.getTitle(); if (title == "Google") System.out.println("We are in Google homepage"); driver.close();- Since:
- 1.9.6
- Author:
- Nir Gallner @ www.VeriSoft.co
- See Also:
RemoteWebDriver,AsyncTask
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected classVerisoftDriver.VerisoftDriverOptionsprotected classVerisoftDriver.VerisoftTargetLocator
-
Field Summary
Fields Modifier and Type Field Description protected org.openqa.selenium.WebDriverdriver
-
Constructor Summary
Constructors Constructor Description VerisoftDriver(@Nullable org.openqa.selenium.Capabilities capabilities)C-tor for local drivers onlyVerisoftDriver(URL remoteAddress, org.openqa.selenium.Capabilities capabilities)C-tor for local and remote drivers
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.openqa.selenium.virtualauthenticator.VirtualAuthenticatoraddVirtualAuthenticator(org.openqa.selenium.virtualauthenticator.VirtualAuthenticatorOptions options)AsyncListenerImpasync()Retrieves the Async listener.voidclose()ObjectexecuteAsyncScript(String script, Object... args)ObjectexecuteScript(String script, Object... args)ObjectexecuteScript(org.openqa.selenium.ScriptKey key, Object... args)org.openqa.selenium.WebElementfindElement(org.openqa.selenium.By by)List<org.openqa.selenium.WebElement>findElements(org.openqa.selenium.By by)voidget(String url)org.openqa.selenium.CapabilitiesgetCapabilities()StringgetCurrentUrl()StringgetPageSource()Set<org.openqa.selenium.ScriptKey>getPinnedScripts()<X> XgetScreenshotAs(org.openqa.selenium.OutputType<X> target)StringgetTitle()StringgetWindowHandle()Set<String>getWindowHandles()org.openqa.selenium.WebDrivergetWrappedDriver()org.openqa.selenium.WebDriver.Optionsmanage()org.openqa.selenium.WebDriver.Navigationnavigate()voidperform(Collection<org.openqa.selenium.interactions.Sequence> actions)org.openqa.selenium.ScriptKeypin(String script)org.openqa.selenium.Pdfprint(org.openqa.selenium.print.PrintOptions printOptions)voidquit()voidremoveVirtualAuthenticator(org.openqa.selenium.virtualauthenticator.VirtualAuthenticator authenticator)voidresetInputState()org.openqa.selenium.WebDriver.TargetLocatorswitchTo()voidunpin(org.openqa.selenium.ScriptKey key)
-
-
-
Constructor Detail
-
VerisoftDriver
public VerisoftDriver(@Nullable @Nullable org.openqa.selenium.Capabilities capabilities)C-tor for local drivers only- Parameters:
capabilities- cpabilities object
-
VerisoftDriver
public VerisoftDriver(URL remoteAddress, org.openqa.selenium.Capabilities capabilities)
C-tor for local and remote drivers- Parameters:
remoteAddress- address of the remote Selenium servercapabilities- capabilities object
-
-
Method Detail
-
get
public void get(String url)
- Specified by:
getin interfaceorg.openqa.selenium.WebDriver
-
getCurrentUrl
public String getCurrentUrl()
- Specified by:
getCurrentUrlin interfaceorg.openqa.selenium.WebDriver
-
getTitle
public String getTitle()
- Specified by:
getTitlein interfaceorg.openqa.selenium.WebDriver
-
findElements
public List<org.openqa.selenium.WebElement> findElements(org.openqa.selenium.By by)
- Specified by:
findElementsin interfaceorg.openqa.selenium.SearchContext- Specified by:
findElementsin interfaceorg.openqa.selenium.WebDriver
-
findElement
public org.openqa.selenium.WebElement findElement(org.openqa.selenium.By by)
- Specified by:
findElementin interfaceorg.openqa.selenium.SearchContext- Specified by:
findElementin interfaceorg.openqa.selenium.WebDriver
-
getPageSource
public String getPageSource()
- Specified by:
getPageSourcein interfaceorg.openqa.selenium.WebDriver
-
close
public void close()
- Specified by:
closein interfaceorg.openqa.selenium.WebDriver
-
quit
public void quit()
- Specified by:
quitin interfaceorg.openqa.selenium.WebDriver
-
getWindowHandles
public Set<String> getWindowHandles()
- Specified by:
getWindowHandlesin interfaceorg.openqa.selenium.WebDriver
-
getWindowHandle
public String getWindowHandle()
- Specified by:
getWindowHandlein interfaceorg.openqa.selenium.WebDriver
-
switchTo
public org.openqa.selenium.WebDriver.TargetLocator switchTo()
- Specified by:
switchToin interfaceorg.openqa.selenium.WebDriver
-
navigate
public org.openqa.selenium.WebDriver.Navigation navigate()
- Specified by:
navigatein interfaceorg.openqa.selenium.WebDriver
-
manage
public org.openqa.selenium.WebDriver.Options manage()
- Specified by:
managein interfaceorg.openqa.selenium.WebDriver
-
executeScript
public Object executeScript(String script, Object... args)
- Specified by:
executeScriptin interfaceorg.openqa.selenium.JavascriptExecutor
-
executeAsyncScript
public Object executeAsyncScript(String script, Object... args)
- Specified by:
executeAsyncScriptin interfaceorg.openqa.selenium.JavascriptExecutor
-
pin
public org.openqa.selenium.ScriptKey pin(String script)
- Specified by:
pinin interfaceorg.openqa.selenium.JavascriptExecutor
-
unpin
public void unpin(org.openqa.selenium.ScriptKey key)
- Specified by:
unpinin interfaceorg.openqa.selenium.JavascriptExecutor
-
getPinnedScripts
public Set<org.openqa.selenium.ScriptKey> getPinnedScripts()
- Specified by:
getPinnedScriptsin interfaceorg.openqa.selenium.JavascriptExecutor
-
executeScript
public Object executeScript(org.openqa.selenium.ScriptKey key, Object... args)
- Specified by:
executeScriptin interfaceorg.openqa.selenium.JavascriptExecutor
-
getCapabilities
public org.openqa.selenium.Capabilities getCapabilities()
- Specified by:
getCapabilitiesin interfaceorg.openqa.selenium.HasCapabilities
-
addVirtualAuthenticator
public org.openqa.selenium.virtualauthenticator.VirtualAuthenticator addVirtualAuthenticator(org.openqa.selenium.virtualauthenticator.VirtualAuthenticatorOptions options)
- Specified by:
addVirtualAuthenticatorin interfaceorg.openqa.selenium.virtualauthenticator.HasVirtualAuthenticator
-
removeVirtualAuthenticator
public void removeVirtualAuthenticator(org.openqa.selenium.virtualauthenticator.VirtualAuthenticator authenticator)
- Specified by:
removeVirtualAuthenticatorin interfaceorg.openqa.selenium.virtualauthenticator.HasVirtualAuthenticator
-
perform
public void perform(Collection<org.openqa.selenium.interactions.Sequence> actions)
- Specified by:
performin interfaceorg.openqa.selenium.interactions.Interactive
-
resetInputState
public void resetInputState()
- Specified by:
resetInputStatein interfaceorg.openqa.selenium.interactions.Interactive
-
print
public org.openqa.selenium.Pdf print(org.openqa.selenium.print.PrintOptions printOptions) throws org.openqa.selenium.WebDriverException- Specified by:
printin interfaceorg.openqa.selenium.PrintsPage- Throws:
org.openqa.selenium.WebDriverException
-
getScreenshotAs
public <X> X getScreenshotAs(org.openqa.selenium.OutputType<X> target) throws org.openqa.selenium.WebDriverException- Specified by:
getScreenshotAsin interfaceorg.openqa.selenium.TakesScreenshot- Throws:
org.openqa.selenium.WebDriverException
-
getWrappedDriver
public org.openqa.selenium.WebDriver getWrappedDriver()
- Specified by:
getWrappedDriverin interfaceorg.openqa.selenium.WrapsDriver
-
async
public AsyncListenerImp async()
Retrieves the Async listener. If it is not initialized yet, initializes the listener- Returns:
- AsyncListener object
-
-