Package io.appium.java_client
Class AppiumDriver
- java.lang.Object
-
- org.openqa.selenium.remote.RemoteWebDriver
-
- io.appium.java_client.AppiumDriver
-
- All Implemented Interfaces:
CanRememberExtensionPresence
,ComparesImages
,ExecutesDriverScript
,ExecutesMethod
,HasBrowserCheck
,HasSettings
,LogsEvents
,org.openqa.selenium.federatedcredentialmanagement.HasFederatedCredentialManagement
,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
- Direct Known Subclasses:
AndroidDriver
,ChromiumDriver
,GeckoDriver
,IOSDriver
,Mac2Driver
,SafariDriver
,WindowsDriver
public class AppiumDriver extends org.openqa.selenium.remote.RemoteWebDriver implements ExecutesMethod, ComparesImages, ExecutesDriverScript, LogsEvents, HasBrowserCheck, CanRememberExtensionPresence, HasSettings
Default Appium driver implementation.
-
-
Field Summary
Fields Modifier and Type Field Description protected org.openqa.selenium.remote.html5.RemoteLocationContext
locationContext
-
Constructor Summary
Constructors Constructor Description AppiumDriver(AppiumClientConfig clientConfig, org.openqa.selenium.Capabilities capabilities)
AppiumDriver(AppiumDriverLocalService service, org.openqa.selenium.Capabilities capabilities)
AppiumDriver(AppiumDriverLocalService service, org.openqa.selenium.remote.http.HttpClient.Factory httpClientFactory, org.openqa.selenium.Capabilities capabilities)
AppiumDriver(AppiumServiceBuilder builder, org.openqa.selenium.Capabilities capabilities)
AppiumDriver(AppiumServiceBuilder builder, org.openqa.selenium.remote.http.HttpClient.Factory httpClientFactory, org.openqa.selenium.Capabilities capabilities)
AppiumDriver(java.net.URL remoteSessionAddress, java.lang.String platformName, java.lang.String automationName)
This is a special constructor used to connect to a running driver instance.AppiumDriver(java.net.URL remoteAddress, org.openqa.selenium.Capabilities capabilities)
AppiumDriver(java.net.URL remoteAddress, org.openqa.selenium.remote.http.HttpClient.Factory httpClientFactory, org.openqa.selenium.Capabilities capabilities)
AppiumDriver(org.openqa.selenium.Capabilities capabilities)
AppiumDriver(org.openqa.selenium.remote.http.HttpClient.Factory httpClientFactory, org.openqa.selenium.Capabilities capabilities)
AppiumDriver(org.openqa.selenium.remote.HttpCommandExecutor executor, org.openqa.selenium.Capabilities capabilities)
Creates a new instance based on commandexecutor
andcapabilities
.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addCommand(org.openqa.selenium.remote.http.HttpMethod httpMethod, java.lang.String url, java.lang.String methodName)
This method is used to add custom appium commands in Appium 2.0.AppiumDriver
assertExtensionExists(java.lang.String extName)
Verifies if the given extension is not present in the list of absent extensions for the given driver instance.protected static org.openqa.selenium.Capabilities
ensureAutomationName(org.openqa.selenium.Capabilities originalCapabilities, java.lang.String defaultName)
Changes automation name if it is not set and returns merged capabilities.protected static org.openqa.selenium.Capabilities
ensurePlatformAndAutomationNames(org.openqa.selenium.Capabilities originalCapabilities, java.lang.String defaultPlatformName, java.lang.String defaultAutomationName)
Changes platform and automation names if they are not set and returns merged capabilities.protected static org.openqa.selenium.Capabilities
ensurePlatformName(org.openqa.selenium.Capabilities originalCapabilities, java.lang.String defaultName)
Changes platform name if it is not set and returns merged capabilities.org.openqa.selenium.remote.Response
execute(java.lang.String command)
Executes the given command and returns a response.org.openqa.selenium.remote.Response
execute(java.lang.String driverCommand, java.util.Map<java.lang.String,?> parameters)
Executes the given command and returns a response.org.openqa.selenium.remote.ExecuteMethod
getExecuteMethod()
protected org.openqa.selenium.remote.http.HttpClient
getHttpClient()
<X> X
getScreenshotAs(org.openqa.selenium.OutputType<X> outputType)
java.util.Map<java.lang.String,java.lang.Object>
getStatus()
This method is used to get build version status of running Appium server.AppiumDriver
markExtensionAbsence(java.lang.String extName)
Marks the given extension as absent for the given driver instance.protected void
startSession(org.openqa.selenium.Capabilities capabilities)
-
Methods inherited from class org.openqa.selenium.remote.RemoteWebDriver
addVirtualAuthenticator, builder, close, execute, executeAsyncScript, executeScript, executeScript, findElement, findElements, findElements, get, getCapabilities, getCommandExecutor, getCurrentUrl, getElementConverter, getErrorHandler, getFederatedCredentialManagementDialog, getFileDetector, getPageSource, getSessionId, getTitle, getWindowHandle, getWindowHandles, log, manage, navigate, perform, pin, print, quit, removeVirtualAuthenticator, resetCooldown, resetInputState, setCommandExecutor, setDelayEnabled, setElementConverter, setErrorHandler, setFileDetector, setFoundBy, setLogLevel, setSessionId, switchTo, toString, unpin
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface io.appium.java_client.ComparesImages
findImageOccurrence, findImageOccurrence, findImageOccurrence, findImageOccurrence, getImagesSimilarity, getImagesSimilarity, getImagesSimilarity, getImagesSimilarity, matchImagesFeatures, matchImagesFeatures, matchImagesFeatures, matchImagesFeatures
-
Methods inherited from interface io.appium.java_client.ExecutesDriverScript
executeDriverScript, executeDriverScript
-
Methods inherited from interface io.appium.java_client.HasBrowserCheck
isBrowser
-
Methods inherited from interface io.appium.java_client.HasSettings
getSettings, setSetting, setSetting, setSettings, setSettings
-
Methods inherited from interface io.appium.java_client.LogsEvents
getEvents, logEvent
-
-
-
-
Constructor Detail
-
AppiumDriver
public AppiumDriver(org.openqa.selenium.remote.HttpCommandExecutor executor, org.openqa.selenium.Capabilities capabilities)
Creates a new instance based on commandexecutor
andcapabilities
.- Parameters:
executor
- is an instance ofHttpCommandExecutor
or class that extends it. Default commands or another vendor-specific commands may be specified there.capabilities
- take a look atCapabilities
-
AppiumDriver
public AppiumDriver(AppiumClientConfig clientConfig, org.openqa.selenium.Capabilities capabilities)
-
AppiumDriver
public AppiumDriver(java.net.URL remoteAddress, org.openqa.selenium.Capabilities capabilities)
-
AppiumDriver
public AppiumDriver(java.net.URL remoteAddress, org.openqa.selenium.remote.http.HttpClient.Factory httpClientFactory, org.openqa.selenium.Capabilities capabilities)
-
AppiumDriver
public AppiumDriver(AppiumDriverLocalService service, org.openqa.selenium.Capabilities capabilities)
-
AppiumDriver
public AppiumDriver(AppiumDriverLocalService service, org.openqa.selenium.remote.http.HttpClient.Factory httpClientFactory, org.openqa.selenium.Capabilities capabilities)
-
AppiumDriver
public AppiumDriver(AppiumServiceBuilder builder, org.openqa.selenium.Capabilities capabilities)
-
AppiumDriver
public AppiumDriver(AppiumServiceBuilder builder, org.openqa.selenium.remote.http.HttpClient.Factory httpClientFactory, org.openqa.selenium.Capabilities capabilities)
-
AppiumDriver
public AppiumDriver(org.openqa.selenium.remote.http.HttpClient.Factory httpClientFactory, org.openqa.selenium.Capabilities capabilities)
-
AppiumDriver
public AppiumDriver(org.openqa.selenium.Capabilities capabilities)
-
AppiumDriver
public AppiumDriver(java.net.URL remoteSessionAddress, java.lang.String platformName, java.lang.String automationName)
This is a special constructor used to connect to a running driver instance. It does not do any necessary verifications, but rather assumes the given driver session is already running at `remoteSessionAddress`. The maintenance of driver state(s) is the caller's responsibility. !!! This API is supposed to be used for **debugging purposes only**.- Parameters:
remoteSessionAddress
- The address of the **running** session including the session identifier.platformName
- The name of the target platform.automationName
- The name of the target automation.
-
-
Method Detail
-
ensurePlatformName
protected static org.openqa.selenium.Capabilities ensurePlatformName(org.openqa.selenium.Capabilities originalCapabilities, java.lang.String defaultName)
Changes platform name if it is not set and returns merged capabilities.- Parameters:
originalCapabilities
- the givenCapabilities
.defaultName
- a platformName value which has to be set up- Returns:
Capabilities
with changed platform name value or the original capabilities
-
ensureAutomationName
protected static org.openqa.selenium.Capabilities ensureAutomationName(org.openqa.selenium.Capabilities originalCapabilities, java.lang.String defaultName)
Changes automation name if it is not set and returns merged capabilities.- Parameters:
originalCapabilities
- the givenCapabilities
.defaultName
- a platformName value which has to be set up- Returns:
Capabilities
with changed mobile automation name value or the original capabilities
-
ensurePlatformAndAutomationNames
protected static org.openqa.selenium.Capabilities ensurePlatformAndAutomationNames(org.openqa.selenium.Capabilities originalCapabilities, java.lang.String defaultPlatformName, java.lang.String defaultAutomationName)
Changes platform and automation names if they are not set and returns merged capabilities.- Parameters:
originalCapabilities
- the givenCapabilities
.defaultPlatformName
- a platformName value which has to be set updefaultAutomationName
- The default automation name to set up for this class- Returns:
Capabilities
with changed platform/automation name value or the original capabilities
-
getExecuteMethod
public org.openqa.selenium.remote.ExecuteMethod getExecuteMethod()
- Overrides:
getExecuteMethod
in classorg.openqa.selenium.remote.RemoteWebDriver
-
getStatus
public java.util.Map<java.lang.String,java.lang.Object> getStatus()
This method is used to get build version status of running Appium server.- Returns:
- map containing version details
-
addCommand
public void addCommand(org.openqa.selenium.remote.http.HttpMethod httpMethod, java.lang.String url, java.lang.String methodName)
This method is used to add custom appium commands in Appium 2.0.- Parameters:
httpMethod
- the availableHttpMethod
.url
- The url to URL template as https://www.w3.org/TR/webdriver/#endpoints.methodName
- The name of custom appium command.
-
startSession
protected void startSession(org.openqa.selenium.Capabilities capabilities)
- Overrides:
startSession
in classorg.openqa.selenium.remote.RemoteWebDriver
-
execute
public org.openqa.selenium.remote.Response execute(java.lang.String driverCommand, java.util.Map<java.lang.String,?> parameters)
Description copied from interface:ExecutesMethod
Executes the given command and returns a response.- Specified by:
execute
in interfaceExecutesMethod
- Overrides:
execute
in classorg.openqa.selenium.remote.RemoteWebDriver
- Parameters:
driverCommand
- a command to executeparameters
- map of command parameters- Returns:
- a result response
-
execute
public org.openqa.selenium.remote.Response execute(java.lang.String command)
Description copied from interface:ExecutesMethod
Executes the given command and returns a response.- Specified by:
execute
in interfaceExecutesMethod
- Overrides:
execute
in classorg.openqa.selenium.remote.RemoteWebDriver
- Parameters:
command
- a command to execute- Returns:
- a result response
-
getScreenshotAs
public <X> X getScreenshotAs(org.openqa.selenium.OutputType<X> outputType)
- Specified by:
getScreenshotAs
in interfaceorg.openqa.selenium.TakesScreenshot
- Overrides:
getScreenshotAs
in classorg.openqa.selenium.remote.RemoteWebDriver
-
assertExtensionExists
public AppiumDriver assertExtensionExists(java.lang.String extName)
Description copied from interface:CanRememberExtensionPresence
Verifies if the given extension is not present in the list of absent extensions for the given driver instance. This API is designed for private usage.- Specified by:
assertExtensionExists
in interfaceCanRememberExtensionPresence
- Parameters:
extName
- extension name.- Returns:
- self instance for chaining.
-
markExtensionAbsence
public AppiumDriver markExtensionAbsence(java.lang.String extName)
Description copied from interface:CanRememberExtensionPresence
Marks the given extension as absent for the given driver instance. This API is designed for private usage.- Specified by:
markExtensionAbsence
in interfaceCanRememberExtensionPresence
- Parameters:
extName
- extension name.- Returns:
- self instance for chaining.
-
getHttpClient
protected org.openqa.selenium.remote.http.HttpClient getHttpClient()
-
-