All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.axway.ats.uiengine.UiDriver Maven / Gradle / Ivy

/*
 * Copyright 2017 Axway Software
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.axway.ats.uiengine;

import java.lang.reflect.Constructor;

import com.axway.ats.common.PublicAtsApi;
import com.axway.ats.core.reflect.MethodFinder;
import com.axway.ats.uiengine.internal.driver.SwingDriverInternal;
import com.gargoylesoftware.htmlunit.BrowserVersion;

/**
 * Abstraction of a UI driver
 *
 * 

* User guide * page * for the UI Engine */ @PublicAtsApi public abstract class UiDriver { /** * start the driver */ @PublicAtsApi public abstract void start(); /** * stop the driver */ @PublicAtsApi public abstract void stop(); /** * * @param url the URL to open * @return new FirefoxDriver instance */ @PublicAtsApi public static FirefoxDriver getFirefoxDriver( String url ) { return new FirefoxDriver( url ); } /** * * @param url the URL to open * @param browserPath the path to the browser starting file or * the remote selenium hub URL (eg. http://10.11.12.13:4444/wd/hub/) * * @return new FirefoxDriver instance */ @PublicAtsApi public static FirefoxDriver getFirefoxDriver( String url, String browserPath ) { return new FirefoxDriver( url, browserPath ); } /** * * @param url the target application URL * @param browserPath the browser start path * @param remoteSeleniumURL the remote selenium hub URL (eg. http://10.11.12.13:4444/wd/hub/) * @return new FirefoxDriver instance */ @PublicAtsApi public static FirefoxDriver getFirefoxDriver( String url, String browserPath, String remoteSeleniumURL ) { return new FirefoxDriver( url, browserPath, remoteSeleniumURL ); } /** * * @param url the URL to open * @return new InternetExplorerDriver instance */ @PublicAtsApi public static InternetExplorerDriver getInternetExplorerDriver( String url ) { return new InternetExplorerDriver( url ); } /** * * @param url the URL to open * @param remoteSeleniumURL the remote selenium hub URL (eg. http://10.11.12.13:4444/wd/hub/) * @return new EdgeDriver instance */ @PublicAtsApi public static EdgeDriver getEdgeDriver( String url, String remoteSeleniumURL ) { return new EdgeDriver( url, remoteSeleniumURL ); } /** * * @param url the URL to open * @return new EdgeDriver instance */ @PublicAtsApi public static EdgeDriver getEdgeDriver( String url ) { return new EdgeDriver( url ); } /** * * @param url the URL to open * @param remoteSeleniumURL the remote selenium hub URL (eg. http://10.11.12.13:4444/wd/hub/) * @return new InternetExplorerDriver instance */ @PublicAtsApi public static InternetExplorerDriver getInternetExplorerDriver( String url, String remoteSeleniumURL ) { return new InternetExplorerDriver( url, remoteSeleniumURL ); } /** * * @param url the URL to open * @return new ChromeDriver instance */ @PublicAtsApi public static ChromeDriver getChromeDriver( String url ) { return new ChromeDriver( url ); } /** * * @param url the URL to open * @param remoteSeleniumURL the remote selenium hub URL (eg. http://10.11.12.13:4444/wd/hub/) * @return new ChromeDriver instance */ @PublicAtsApi public static ChromeDriver getChromeDriver( String url, String remoteSeleniumURL ) { return new ChromeDriver( url, remoteSeleniumURL ); } /** * * @param url the URL to open * @return new SafariDriver instance */ @PublicAtsApi public static SafariDriver getSafariDriver( String url ) { return new SafariDriver( url ); } /** * * @param url the URL to open * @param remoteSeleniumURL the remote selenium hub URL (eg. http://10.11.12.13:4444/wd/hub/) * @return new SafariDriver instance */ @PublicAtsApi public static SafariDriver getSafariDriver( String url, String remoteSeleniumURL ) { return new SafariDriver( url, remoteSeleniumURL ); } /** * * @param url the URL to open * @return new HiddenBrowserDriver instance */ @PublicAtsApi public static HiddenBrowserDriver getHiddenBrowserDriver( String url ) { return new HiddenBrowserDriver( url ); } /** * * @param url the URL to open * @param browserVersion a {@link BrowserVersion} to emulate * @return new HiddenBrowserDriver instance */ @PublicAtsApi public static HiddenBrowserDriver getHiddenBrowserDriver( String url, BrowserVersion browserVersion ) { return new HiddenBrowserDriver( url, browserVersion ); } /** * * @param url the URL to open * @param browserPath the browser absolute path * @return new PhantomJSDriver instance */ @PublicAtsApi public static PhantomJsDriver getPhantomJSDriver( String url, String browserPath ) { return new PhantomJsDriver( url, browserPath ); } /** * * @return new RobotDriver instance */ @PublicAtsApi public static RobotDriver getRobotDriver() { return new RobotDriver(); } /** * * @param mainClassOfTestedApplication the class containing the "main" method * @return new SwingDriver instance */ @PublicAtsApi public static SwingDriver getSwingDriver( Class mainClassOfTestedApplication ) { return new SwingDriverInternal( mainClassOfTestedApplication ); } /** * * @param mainClassOfTestedApplication the class containing the "main" method * @param windowTitle the window title * @return new SwingDriver instance */ @PublicAtsApi public static SwingDriver getSwingDriver( Class mainClassOfTestedApplication, String windowTitle ) { return new SwingDriverInternal( mainClassOfTestedApplication, windowTitle ); } /** * * @param windowTitle the window title * @return new SwingDriver instance */ @PublicAtsApi public static SwingDriver getSwingDriver( String windowTitle ) { return new SwingDriverInternal( windowTitle ); } /** * Driver for working with JNLP applications * @param jnlpLocation JNLP location. It can be local JNLP file path or a remote url * @param cacheEnabled whether the JNLP is cached or not * @return new SwingDriver instance */ @PublicAtsApi public static SwingDriver getSwingDriver( String jnlpLocation, boolean cacheEnabled ) { return new SwingDriverInternal( jnlpLocation, cacheEnabled ); } /** * Driver for working with mobile applications * @param deviceName the kind of mobile device or emulator to use. You can use one of {@link MobileDriver} driver type constants.
* For example: MobileDriver.DEVICE_ANDROID_EMULATOR, MobileDriver.DEVICE_IPHONE_SIMULATOR or iPhone Retina 4-inch, Galaxy S4, ...
* On iOS, this should be one of the valid devices returned by instruments with instruments -s devices.
* @param platformVersion mobile OS version. For example: 8.1, 4.4 ... For Android it could be skipped (null) * @param udid unique device identifier of the connected physical device or null for emulator/simulator usage * @param host the host address of the Appium server. null may be passed if you want to work with localhost emulator * @return new MobileDriver instance */ @PublicAtsApi public static MobileDriver getMobileDriver( String deviceName, String platformVersion, String udid, String host ) { return new MobileDriver( deviceName, platformVersion, udid, host ); } /** * Driver for working with mobile applications * @param deviceName the kind of mobile device or emulator to use. You can use one of {@link MobileDriver} driver type constants.
* For example: MobileDriver.DEVICE_ANDROID_EMULATOR, MobileDriver.DEVICE_IPHONE_SIMULATOR or iPhone Retina 4-inch, Galaxy S4, ...
* On iOS, this should be one of the valid devices returned by instruments with instruments -s devices.
* @param platformVersion mobile OS version. For example: 8.1, 4.4 ... For Android it could be skipped (null) * @param udid unique device identifier of the connected physical device or null for emulator/simulator usage * @param host the host address of the Appium server. null may be passed if you want to work with localhost emulator * @param port the port number of the Appium server * @return new MobileDriver instance */ @PublicAtsApi public static MobileDriver getMobileDriver( String deviceName, String platformVersion, String udid, String host, int port ) { return new MobileDriver( deviceName, platformVersion, udid, host, port ); } /** * This method allows you to load your own driver implementation which you can use as any other UI Engine driver * @param driverClassName the full class name of the custom driver class * @param constructorNumber the index of the constructor (in the custom driver class implementation source code), * which will be used for creating new instance * @param constructorArguments the arguments, which will be passed to the constructor * @return new UiDriver instance */ @PublicAtsApi public static UiDriver getCustomDriver( String driverClassName, Class[] parameterTypes, Object[] constructorArguments ) throws Exception { UiDriver driver = null; try { Class clss = Class.forName( driverClassName ); Constructor constructor = new MethodFinder(clss).findConstructor(parameterTypes); driver = ( UiDriver ) constructor.newInstance( constructorArguments ); } catch( Exception e ) { throw new Exception( "Error while loading custom driver '" + driverClassName + "'", e ); } return driver; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy