diff --git a/pom.xml b/pom.xml
index 86a298d..aaee65d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
com.testdevlab
TestUI
- 2.0.0
+ 2.0.1
@@ -132,10 +132,29 @@
+
+ org.seleniumhq.selenium
+ selenium-java
+ 4.6.0
+
io.appium
java-client
- 8.0.0
+
+
+ org.seleniumhq.selenium
+ selenium-api
+
+
+ org.seleniumhq.selenium
+ selenium-remote-driver
+
+
+ org.seleniumhq.selenium
+ selenium-support
+
+
+ 8.1.0
net.lightbody.bmp
@@ -150,7 +169,8 @@
com.codeborne
selenide
- 6.7.4
+
+ 6.10.1
org.slf4j
diff --git a/src/main/java/testUI/AndroidUtils/ADBUtils.java b/src/main/java/testUI/AndroidUtils/ADBUtils.java
index 8ca0271..35ab99f 100644
--- a/src/main/java/testUI/AndroidUtils/ADBUtils.java
+++ b/src/main/java/testUI/AndroidUtils/ADBUtils.java
@@ -18,12 +18,9 @@
import java.nio.file.StandardCopyOption;
import java.util.ArrayList;
import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
import static testUI.UIUtils.getDevice;
import static testUI.UIUtils.putLog;
-import static testUI.Utils.Logger.putLogInfo;
import static testUI.Utils.Logger.putLogWarn;
public class ADBUtils {
@@ -32,8 +29,7 @@ public class ADBUtils {
private static String platformTools = "/platform-tools/";
private static String emulatorFolder = "/emulator/";
public static String MAC_CHROME_DRIVER =
- "/usr/local/lib/node_modules/appium/node_modules/appium-chromedriver/chromedriver/mac" +
- "/chromedriver*";
+ "/usr/local/bin/chromedriver";
public static String LNX_CHROME_DRIVER =
"/usr/local/lib/node_modules/appium/node_modules/appium-chromedriver/chromedriver" +
"/linux/chromedriver*";
@@ -238,21 +234,23 @@ public void checkAndInstallChromedriver() {
putLog("Detected Chrome version = " + chromeVersion
+ " matches with the actual chromedriver: "
+ ActualVersion);
- } else if (!doesFileExists(chromeDriverPath)) {
- putLog("Detected Chrome version = " + chromeVersion
- + " but the Appium ChromeDriver is unknown, "
- + "maybe you should check the appium "
- + "installation or run npm install appium -g");
+ configuration.setChromeDriverPath(chromeDriverPath);
} else if (getTargetDirectory(configuration, chromeVersion.split("\\.")[0])) {
putLog("Detected Chrome driver already installed "
+ "for this device, placed in target directory");
} else {
+ if (!doesFileExists(chromeDriverPath)) {
+ putLog("Detected Chrome version = " + chromeVersion
+ + " but the ChromeDriver is unknown, "
+ + "maybe you should check the appium/chromedriver "
+ + "installation");
+ }
putLog("Detected Chrome version = " + chromeVersion
+ ". Installing the ChromeDriver: "
+ chromeDriverVersion);
WebDriverManager.chromedriver().driverVersion(chromeDriverVersion).setup();
configuration.setChromeDriverPath(
- copyFileToCustomFolder(WebDriverManager.chromedriver().getDownloadedDriverPath(),
+ copyFileToCustomFolder(System.getProperty("webdriver.chrome.driver"),
chromeVersion.split("\\.")[0]));
}
} catch (IOException e) {
diff --git a/src/main/java/testUI/AndroidUtils/AndroidCapabilities.java b/src/main/java/testUI/AndroidUtils/AndroidCapabilities.java
index fb731bb..92ebd74 100644
--- a/src/main/java/testUI/AndroidUtils/AndroidCapabilities.java
+++ b/src/main/java/testUI/AndroidUtils/AndroidCapabilities.java
@@ -23,27 +23,27 @@ public static DesiredCapabilities setAppAndroidCapabilities(TestUIConfiguration
DesiredCapabilities cap = setChromeDriverCap(configuration);
if (getDesiredCapabilities() == null) {
cap.merge(setDeviceCapability(configuration));
- cap.setCapability(AndroidMobileCapabilityType.APP_WAIT_DURATION,
+ cap.setCapability("appium:" + AndroidMobileCapabilityType.APP_WAIT_DURATION,
Configuration.launchAppTimeout);
if (Configuration.automationName.isEmpty()) {
- cap.setCapability(MobileCapabilityType.AUTOMATION_NAME, "UiAutomator2");
+ cap.setCapability("appium:" + MobileCapabilityType.AUTOMATION_NAME, "UiAutomator2");
} else {
- cap.setCapability(MobileCapabilityType.AUTOMATION_NAME,
+ cap.setCapability("appium:" + MobileCapabilityType.AUTOMATION_NAME,
Configuration.automationName);
}
- cap.setCapability(MobileCapabilityType.PLATFORM_NAME, Platform.ANDROID);
+ cap.setCapability("appium:platformName", Platform.ANDROID);
if (!Configuration.appActivity.isEmpty() && !Configuration.appPackage.isEmpty()) {
- cap.setCapability(AndroidMobileCapabilityType.APP_ACTIVITY,
+ cap.setCapability("appium:" + AndroidMobileCapabilityType.APP_ACTIVITY,
Configuration.appActivity);
- cap.setCapability(AndroidMobileCapabilityType.APP_PACKAGE,
+ cap.setCapability("appium:" + AndroidMobileCapabilityType.APP_PACKAGE,
Configuration.appPackage);
}
if (!Configuration.androidAppPath.isEmpty()) {
String appPath = Configuration.androidAppPath.charAt(0) == '/'
? Configuration.androidAppPath
: System.getProperty("user.dir") + "/" + Configuration.androidAppPath;
- cap.setCapability("androidInstallPath", appPath);
- cap.setCapability("app", appPath);
+ cap.setCapability("appium:androidInstallPath", appPath);
+ cap.setCapability("appium:app", appPath);
}
cap.merge(setPortCapabilities(configuration));
} else {
@@ -69,16 +69,16 @@ public static DesiredCapabilities setAndroidBrowserCapabilities(
if (getDesiredCapabilities() == null) {
cap.merge(setDeviceCapability(configuration));
if (Configuration.automationName.isEmpty()) {
- cap.setCapability(MobileCapabilityType.AUTOMATION_NAME, "UiAutomator2");
+ cap.setCapability("appium:" + MobileCapabilityType.AUTOMATION_NAME, "UiAutomator2");
} else {
- cap.setCapability(MobileCapabilityType.AUTOMATION_NAME,
+ cap.setCapability("appium:" + MobileCapabilityType.AUTOMATION_NAME,
Configuration.automationName);
}
cap.merge(setPortCapabilities(configuration));
- cap.setCapability(MobileCapabilityType.NO_RESET, true);
- cap.setCapability(MobileCapabilityType.PLATFORM_NAME, Platform.ANDROID);
- cap.setCapability(MobileCapabilityType.BROWSER_NAME, "chrome");
- cap.setCapability(AndroidMobileCapabilityType.NATIVE_WEB_SCREENSHOT, true);
+ cap.setCapability("appium:" + MobileCapabilityType.NO_RESET, true);
+ cap.setCapability("appium:" + MobileCapabilityType.PLATFORM_NAME, Platform.ANDROID);
+ cap.setCapability("appium:" + MobileCapabilityType.BROWSER_NAME, "chrome");
+ cap.setCapability("appium:" + AndroidMobileCapabilityType.NATIVE_WEB_SCREENSHOT, true);
if (!Configuration.useW3C) {
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setExperimentalOption("w3c", false);
@@ -133,11 +133,11 @@ private static DesiredCapabilities setDeviceCapability(TestUIConfiguration confi
if (configuration.getEmulatorName().isEmpty()) {
String udid = configuration.getUDID().isEmpty() ? getDevice()
: configuration.getUDID();
- cap.setCapability(MobileCapabilityType.UDID, udid);
- cap.setCapability(MobileCapabilityType.DEVICE_NAME, udid);
+ cap.setCapability("appium:" + MobileCapabilityType.UDID, udid);
+ cap.setCapability("appium:" + MobileCapabilityType.DEVICE_NAME, udid);
} else {
- cap.setCapability(AndroidMobileCapabilityType.AVD, configuration.getEmulatorName());
- cap.setCapability(MobileCapabilityType.DEVICE_NAME, configuration.getEmulatorName());
+ cap.setCapability("appium:" + AndroidMobileCapabilityType.AVD, configuration.getEmulatorName());
+ cap.setCapability("appium:" + MobileCapabilityType.DEVICE_NAME, configuration.getEmulatorName());
}
return cap;
@@ -148,14 +148,14 @@ private static DesiredCapabilities setPortCapabilities(TestUIConfiguration confi
if (configuration.getAppiumUrl().isEmpty()) {
int systemPort = Integer.parseInt(getUsePort().get(getUsePort().size() - 1)) + 10;
int chromeDriverPort = Integer.parseInt(getUsePort().get(getUsePort().size() - 1)) + 15;
- cap.setCapability("chromedriverPort", chromeDriverPort);
- cap.setCapability(AndroidMobileCapabilityType.SYSTEM_PORT, systemPort);
+ cap.setCapability("appium:" + "chromedriverPort", chromeDriverPort);
+ cap.setCapability("appium:" + AndroidMobileCapabilityType.SYSTEM_PORT, systemPort);
}
if (Configuration.chromeDriverPort != 0) {
- cap.setCapability("chromedriverPort", chromeDriverPort);
+ cap.setCapability("appium:chromedriverPort", chromeDriverPort);
}
if (Configuration.systemPort != 0) {
- cap.setCapability(AndroidMobileCapabilityType.SYSTEM_PORT, systemPort);
+ cap.setCapability("appium:" + AndroidMobileCapabilityType.SYSTEM_PORT, systemPort);
}
return cap;
@@ -170,7 +170,7 @@ private static DesiredCapabilities setChromeDriverCap(
configuration.getChromeDriverPath().startsWith("C:\\")
? configuration.getChromeDriverPath()
: System.getProperty("user.dir") + slash + configuration.getChromeDriverPath();
- cap.setCapability(AndroidMobileCapabilityType.CHROMEDRIVER_EXECUTABLE, chromePath);
+ cap.setCapability("appium:" + AndroidMobileCapabilityType.CHROMEDRIVER_EXECUTABLE, chromePath);
return cap;
}
diff --git a/src/main/java/testUI/AndroidUtils/AndroidOpen.java b/src/main/java/testUI/AndroidUtils/AndroidOpen.java
index 1ecdaf1..c546f28 100644
--- a/src/main/java/testUI/AndroidUtils/AndroidOpen.java
+++ b/src/main/java/testUI/AndroidUtils/AndroidOpen.java
@@ -34,7 +34,8 @@ public void openApp(TestUIConfiguration configuration) {
setEmulatorIfNeeded(configuration);
putAllureParameter(
"Version",
- getDriver().getCapabilities().asMap().get("platformVersion").toString()
+ getDriver().getCapabilities().asMap()
+ .getOrDefault("appium:platformVersion", "Unknown").toString()
);
} else {
driver = 1;
@@ -47,7 +48,8 @@ public void openApp(TestUIConfiguration configuration) {
startFirstAndroidDriver(cap);
putAllureParameter(
"Version",
- getDriver().getCapabilities().asMap().get("platformVersion").toString()
+ getDriver().getCapabilities().asMap()
+ .getOrDefault("appium:platformVersion", "Unknown").toString()
);
}
Configuration.emulatorName = "";
@@ -63,7 +65,8 @@ public void openNewApp(TestUIConfiguration configuration) {
setEmulatorIfNeeded(configuration);
putAllureParameter(
"Version",
- getDriver().getCapabilities().asMap().get("platformVersion").toString()
+ getDriver().getCapabilities().asMap()
+ .getOrDefault("appium:platformVersion", "Unknown").toString()
);
Configuration.emulatorName = "";
}
@@ -87,7 +90,8 @@ public void openBrowser(String urlOrRelativeUrl, TestUIConfiguration configurati
setEmulatorIfNeeded(configuration);
putAllureParameter(
"Version",
- getDriver().getCapabilities().asMap().get("platformVersion").toString()
+ getDriver().getCapabilities().asMap()
+ .getOrDefault("appium:platformVersion", "Unknown").toString()
);
} else {
Configuration.driver = 1;
@@ -99,7 +103,8 @@ public void openBrowser(String urlOrRelativeUrl, TestUIConfiguration configurati
startFirstAndroidBrowserDriver(urlOrRelativeUrl, configuration);
putAllureParameter(
"Version",
- getDriver().getCapabilities().asMap().get("platformVersion").toString()
+ getDriver().getCapabilities().asMap()
+ .getOrDefault("appium:platformVersion", "Unknown").toString()
);
}
putAllureParameter("Browser", "Chrome");
@@ -132,7 +137,8 @@ public void openNewBrowser(String urlOrRelativeUrl, TestUIConfiguration configur
setEmulatorIfNeeded(configuration);
putAllureParameter(
"Version",
- getDriver().getCapabilities().asMap().get("platformVersion").toString()
+ getDriver().getCapabilities().asMap()
+ .getOrDefault("appium:platformVersion", "emulator").toString()
);
} else {
startSelenideDriver(urlOrRelativeUrl);
@@ -142,13 +148,16 @@ public void openNewBrowser(String urlOrRelativeUrl, TestUIConfiguration configur
private void setEmulatorIfNeeded(TestUIConfiguration configuration) {
if (!configuration.getEmulatorName().isEmpty()) {
+ System.out.println(getDriver().getCapabilities().asMap());
setDevice(
- getDriver().getCapabilities().asMap().get("deviceUDID").toString(),
- getDriver().getCapabilities().asMap().get("deviceUDID").toString()
+ getDriver().getCapabilities().asMap()
+ .getOrDefault("appium:deviceUDID", "emulator").toString(),
+ getDriver().getCapabilities().asMap()
+ .getOrDefault("appium:deviceUDID", "emulator").toString()
);
attachShutDownHookStopEmulator(
getAppiumServices(),
- getDriver().getCapabilities().asMap().get("deviceUDID").toString()
+ getDriver().getCapabilities().asMap().get("appium:deviceUDID").toString()
);
}
}
diff --git a/src/main/java/testUI/Configuration.java b/src/main/java/testUI/Configuration.java
index 6aeafc0..5eef95a 100644
--- a/src/main/java/testUI/Configuration.java
+++ b/src/main/java/testUI/Configuration.java
@@ -11,6 +11,7 @@ public class Configuration extends SelenideConfiguration {
public static final String ANDROID_PLATFORM = "android";
public static final String IOS_PLATFORM = "ios";
public static final String DESKTOP_PLATFORM = "desktop";
+ public static final String BASE_APPIUM_PATH = "/wd/hub/";
// IOS CAPABILITIES
public static int wdaPort = 8100;
diff --git a/src/main/java/testUI/IOSUtils/IOCapabilities.java b/src/main/java/testUI/IOSUtils/IOCapabilities.java
index 960affb..90735c6 100644
--- a/src/main/java/testUI/IOSUtils/IOCapabilities.java
+++ b/src/main/java/testUI/IOSUtils/IOCapabilities.java
@@ -27,14 +27,14 @@ public static DesiredCapabilities setIOSCapabilities(boolean browser) {
}
// BROWSER OR APP
if (browser) {
- capabilities.setCapability(MobileCapabilityType.AUTO_WEBVIEW, true);
- capabilities.setCapability(MobileCapabilityType.BROWSER_NAME,
+ capabilities.setCapability("appium:" + MobileCapabilityType.AUTO_WEBVIEW, true);
+ capabilities.setCapability("appium:" + MobileCapabilityType.BROWSER_NAME,
MobileBrowserType.SAFARI);
} else if (!Configuration.iOSAppPath.isEmpty()) {
String appPath = Configuration.iOSAppPath.charAt(0) == '/' ?
Configuration.iOSAppPath :
System.getProperty("user.dir") + "/" + Configuration.iOSAppPath;
- capabilities.setCapability(MobileCapabilityType.APP, appPath);
+ capabilities.setCapability("appium:" + MobileCapabilityType.APP, appPath);
}
// IN CASE OF REAL DEVICE
if (!Configuration.xcodeOrgId.isEmpty()) {
@@ -44,11 +44,11 @@ public static DesiredCapabilities setIOSCapabilities(boolean browser) {
Configuration.xcodeSigningId);
}
if (!Configuration.updatedWDABundleId.isEmpty()) {
- capabilities.setCapability("updatedWDABundleId",
+ capabilities.setCapability("appium:updatedWDABundleId",
Configuration.updatedWDABundleId);
}
if (!Configuration.bundleId.isEmpty()) {
- capabilities.setCapability("bundleId", Configuration.bundleId);
+ capabilities.setCapability("appium:bundleId", Configuration.bundleId);
}
// DEFAULT THINGS
int wdaLocalPort;
@@ -60,11 +60,11 @@ public static DesiredCapabilities setIOSCapabilities(boolean browser) {
wdaLocalPort = Configuration.wdaPort;
}
capabilities.setCapability(IOSMobileCapabilityType.WDA_LOCAL_PORT, wdaLocalPort);
- capabilities.setCapability(MobileCapabilityType.NO_RESET, false);
+ capabilities.setCapability("appium:" + MobileCapabilityType.NO_RESET, false);
capabilities.setCapability(IOSMobileCapabilityType.USE_NEW_WDA,
Configuration.useNewWDA);
- capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, Platform.IOS);
- capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "XCUITest");
+ capabilities.setCapability("appium:platformName", Platform.IOS);
+ capabilities.setCapability("appium:" + MobileCapabilityType.AUTOMATION_NAME, "XCUITest");
capabilities.setCapability(IOSMobileCapabilityType.START_IWDP, true);
capabilities.setCapability(IOSMobileCapabilityType.WDA_LAUNCH_TIMEOUT,
Configuration.launchAppTimeout);
@@ -107,28 +107,28 @@ private static DesiredCapabilities getIOSDevice() {
Configuration.iOSDeviceName;
Configuration.iOSVersion = Configuration.iOSVersion.isEmpty() ? "13.2" :
Configuration.iOSVersion;
- capabilities.setCapability(MobileCapabilityType.DEVICE_NAME,
+ capabilities.setCapability("appium:" + MobileCapabilityType.DEVICE_NAME,
Configuration.iOSDeviceName);
- capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION,
+ capabilities.setCapability("appium:" + MobileCapabilityType.PLATFORM_VERSION,
Configuration.iOSVersion);
- capabilities.setCapability("udid", Configuration.UDID);
+ capabilities.setCapability("appium:udid", Configuration.UDID);
} else {
if (Configuration.UDID.isEmpty()) {
- capabilities.setCapability("udid", "auto");
+ capabilities.setCapability("appium:udid", "auto");
} else {
- capabilities.setCapability("udid", Configuration.UDID);
+ capabilities.setCapability("appium:udid", Configuration.UDID);
}
- capabilities.setCapability(MobileCapabilityType.DEVICE_NAME,
+ capabilities.setCapability("appium:" + MobileCapabilityType.DEVICE_NAME,
Configuration.iOSDeviceName);
- capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION,
+ capabilities.setCapability("appium:" + MobileCapabilityType.PLATFORM_VERSION,
Configuration.iOSVersion);
}
} else {
- capabilities.setCapability(MobileCapabilityType.DEVICE_NAME,
+ capabilities.setCapability("appium:" + MobileCapabilityType.DEVICE_NAME,
Configuration.iOSDeviceName);
- capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION,
+ capabilities.setCapability("appium:" + MobileCapabilityType.PLATFORM_VERSION,
Configuration.iOSVersion);
- capabilities.setCapability("udid", Configuration.UDID);
+ capabilities.setCapability("appium:udid", Configuration.UDID);
}
return capabilities;
diff --git a/src/main/java/testUI/TestUIConfiguration.java b/src/main/java/testUI/TestUIConfiguration.java
index 3cf558e..5749eec 100644
--- a/src/main/java/testUI/TestUIConfiguration.java
+++ b/src/main/java/testUI/TestUIConfiguration.java
@@ -37,6 +37,7 @@ public class TestUIConfiguration {
private final String serverLogLevel = Configuration.serverLogLevel;
// private final String screenshotPath = Configuration.screenshotPath;
private final int timeStartAppiumServer = Configuration.timeStartAppiumServer;
+ private final String BASE_APPIUM_PATH = Configuration.BASE_APPIUM_PATH;
public TestUIConfiguration() {
if (!Configuration.chromeDriverPath.isEmpty()) {
@@ -123,4 +124,8 @@ public String getServerLogLevel() {
return serverLogLevel;
}
+ public String getBaseAppiumPath() {
+ return BASE_APPIUM_PATH;
+ }
+
}
diff --git a/src/main/java/testUI/TestUIServer.java b/src/main/java/testUI/TestUIServer.java
index cf38826..2a64710 100644
--- a/src/main/java/testUI/TestUIServer.java
+++ b/src/main/java/testUI/TestUIServer.java
@@ -35,7 +35,7 @@ protected static void startServer(
DesiredCapabilities cap;
//Set Capabilities
cap = new DesiredCapabilities();
- cap.setCapability("noReset", "false");
+ cap.setCapability("appium:noReset", "false");
//Build the Appium service
builder = new AppiumServiceBuilder();
builder.withIPAddress("127.0.0.1");
@@ -44,6 +44,7 @@ protected static void startServer(
builder.withArgument(GeneralServerFlag.SESSION_OVERRIDE);
builder.withArgument(GeneralServerFlag.LOG_LEVEL, "info");
builder.withArgument(AndroidServerFlag.BOOTSTRAP_PORT_NUMBER, Bootstrap);
+ builder.withArgument(GeneralServerFlag.BASEPATH, configuration.getBaseAppiumPath());
//Start the server with the builder
TestUIServer.serviceRunning.set(false);
boolean slowResponse = false;
@@ -288,11 +289,14 @@ public static void stop(int driver) {
removeUsePort(driver - 1);
removeUseBootstrapPort(driver - 1);
if (Configuration.automationType.equals(IOS_PLATFORM)) {
- getDrivers().get(driver - 1).close();
+ if (getDrivers().size() != 0)
+ getDrivers().get(driver - 1).close();
sleep(500);
}
- getDrivers().get(driver - 1).quit();
- removeDriver(driver - 1);
+ if (getDrivers().size() != 0) {
+ getDrivers().get(driver - 1).quit();
+ removeDriver(driver - 1);
+ }
getAppiumServices().get(driver - 1).stop();
getAppiumServices().remove(driver - 1);
if (getDevices().size() != 0) {
diff --git a/src/main/java/testUI/elements/Element.java b/src/main/java/testUI/elements/Element.java
index 1d3e462..7af6aaf 100644
--- a/src/main/java/testUI/elements/Element.java
+++ b/src/main/java/testUI/elements/Element.java
@@ -7,7 +7,7 @@
import org.openqa.selenium.interactions.PointerInput;
import org.openqa.selenium.interactions.Sequence;
import org.openqa.selenium.io.FileHandler;
-import org.openqa.selenium.support.ui.Quotes;
+//import org.openqa.selenium.support.ui.Quotes;
import testUI.Configuration;
import testUI.BrowserLogs;
import testUI.Utils.TestUIException;
@@ -409,7 +409,7 @@ public UIElement sendKeys(CharSequence charSequence) {
public UIElement selectElementByValue(String... values) {
for (String value : values) {
- UIElement e = E(By.xpath("//option[@value = " + Quotes.escape(value) + "]"));
+ UIElement e = E(By.xpath("//option[@value = " + value + "]"));
e.waitFor(5).untilIsVisible();
if (Configuration.automationType.equals(Configuration.DESKTOP_PLATFORM)) {
if (!e.getSelenideElement().isSelected()) {
diff --git a/src/test/java/TestRunners/TestAndroidLocal.java b/src/test/java/TestRunners/TestAndroidLocal.java
index cc8d3a4..7f7c223 100644
--- a/src/test/java/TestRunners/TestAndroidLocal.java
+++ b/src/test/java/TestRunners/TestAndroidLocal.java
@@ -5,6 +5,7 @@
import org.junit.Test;
import pages.GoogleLandingPage;
import testUI.Configuration;
+import testUI.TestUIDriver;
import static testUI.Configuration.ANDROID_PLATFORM;
import static testUI.TestUIServer.stop;
@@ -20,26 +21,18 @@ public class TestAndroidLocal {
public void testAndroidBrowser() {
Configuration.testUILogLevel = LogLevel.DEBUG;
Configuration.automationType = ANDROID_PLATFORM;
+ Configuration.installMobileChromeDriver = true;
open("https://www.google.com");
- E(byMobileCss("#SIvCob")).click();
googleLandingPage.getGoogleSearchInput().scrollTo().view(true)
.given("Check search input visible and set value").waitFor(5)
- .untilIsVisible().then().setValueJs("TestUI")
- .shouldHave().not().emptyAttribute("value");
+ .untilIsVisible();
googleLandingPage.getGoogleSearch().then("Check that search button visible")
- .waitFor(1).untilIsVisible()
- .and("Click on search button").click();
+ .waitFor(1).untilIsVisible();
stop();
Configuration.testUILogLevel = LogLevel.DEBUG;
open("https://www.google.com");
- E(byMobileCss("#SIvCob")).click();
googleLandingPage.getGoogleSearchInput().scrollTo().view(true)
- .given("Check search input visible and set value").waitFor(5)
- .untilIsVisible().then().setValueJs("TestUI")
- .shouldHave().not().emptyAttribute("value");
- googleLandingPage.getGoogleSearch().then("Check that search button visible")
- .waitFor(10).untilIsVisible()
- .and("Click on search button").click();
+ .given("Check search input visible and set value");
}
@Test
@@ -49,24 +42,5 @@ public void testAndroidBrowser2() {
Configuration.appiumUrl = "";
Configuration.androidDeviceName = "";
open("https://www.google.com");
- googleLandingPage.getGoogleSearchInput()
- .given("Check search input visible and set value").waitFor(5)
- .untilIsVisible().then().sendKeys("TestUI");
- googleLandingPage.getGoogleSearch().then("Check that search button visible")
- .waitFor(10).untilIsVisible()
- .and("Click on search button").click();
- }
-
- @Test
- @DisplayName("Test cli testUI")
- public void testCliTestUI() {
- Configuration.testUILogLevel = LogLevel.INFO;
- open("https://www.google.com");
- googleLandingPage.getGoogleSearchInput()
- .given("Check search input visible and set value").waitFor(5)
- .untilIsVisible().then().sendKeys("TestUI");
- googleLandingPage.getGoogleSearch().then("Check that search button visible")
- .waitFor(10).untilIsVisible()
- .and("Click on search button").click();
}
}
diff --git a/src/test/java/TestRunners/TestBrowser.java b/src/test/java/TestRunners/TestBrowser.java
index 214be3f..77d21d6 100644
--- a/src/test/java/TestRunners/TestBrowser.java
+++ b/src/test/java/TestRunners/TestBrowser.java
@@ -3,14 +3,10 @@
import io.netty.handler.logging.LogLevel;
import io.qameta.allure.junit4.DisplayName;
import org.junit.Test;
-import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
-import org.openqa.selenium.firefox.FirefoxOptions;
-import org.openqa.selenium.safari.SafariDriver;
import pages.GoogleLandingPage;
import testUI.Configuration;
-import testUI.Utils.GridTestUI;
import static testUI.TestUIDriver.*;
import static testUI.TestUIServer.stop;
@@ -20,6 +16,7 @@
import static testUI.Utils.By.*;
import static testUI.Utils.Performance.getListOfCommandsTime;
import static testUI.Utils.Performance.logAverageTime;
+import static testUI.elements.TestUI.E;
import static testUI.elements.TestUI.raiseSoftAsserts;
public class TestBrowser {
@@ -35,15 +32,9 @@ public void testDesktopBrowser() {
open("https://www.google.com");
UIAssert("the url is not correct",
getSelenideDriver().getCurrentUrl().equals("https://www.google.com/"));
- googleLandingPage.getGoogleCookies().click();
- googleLandingPage.getGoogleSearchInput().given()
- .waitFor(5).untilIsVisible();
executeJs("arguments[0].value='TestUI';", googleLandingPage.getGoogleSearchInput()
.getSelenideElement().getWrappedElement());
- googleLandingPage.getGoogleSearchInput().given().shouldBe().visible().sendKeys("TestUI");
- googleLandingPage.getGoogleSearchInput().waitFor(5).untilHasValue("TestUI");
- googleLandingPage.getGoogleSearch().shouldHave().not().emptyText();
- googleLandingPage.getGoogleSearch().given().waitFor(10).untilIsVisible()
+ googleLandingPage.getGoogleSearch()
.then().saveScreenshot("~/Documents" +
"/screen" +
".png");
@@ -57,11 +48,12 @@ public void testDesktopBrowser() {
public void setDriverTest() {
ChromeOptions options = new ChromeOptions();
Configuration.softAsserts = false;
- options.addArguments("--user-agent=" + "Agent", "--ignore-certificate-errors");
- selenideBrowserCapabilities.setCapability(ChromeOptions.CAPABILITY, options);
+ options.addArguments("--user-agent=Agent", "--ignore-certificate-errors");
+ Configuration.chromeOptions = options;
selenideBrowserCapabilities.setBrowserName("chrome");
open("https://www.whatsmyua.info/");
- sleep(10000);
+ E(byCssSelector("textarea")).waitFor(10).untilHasText("Agent");
+ sleep(1000);
}
@Test
@@ -73,22 +65,13 @@ public void testDesktopBrowserSafari() {
Configuration.softAsserts = true;
open("https://www.google.com");
System.out.println(getTestUIDriver().getCurrentUrl());
- googleLandingPage.getGoogleSearchInput().given().waitFor(5).untilIsVisible();
- googleLandingPage.getGoogleCookies().click();
executeJs("arguments[0].value='TestUI';", googleLandingPage.getGoogleSearchInput()
.getSelenideElement().getWrappedElement());
- googleLandingPage.getGoogleSearchInput().given().shouldBe().visible().sendKeys("TestUI");
- googleLandingPage.getGoogleSearch().shouldHave().not().emptyText();
- googleLandingPage.getGoogleSearch().given().waitFor(10).untilIsVisible()
+ googleLandingPage.getGoogleSearch().given()
.then().click().saveScreenshot("/Users/alvarolasernalopez/Documents/screen" +
".png");
stop();
open("https://www.google.com");
- googleLandingPage.getGoogleSearchInput().given().waitFor(5).untilIsVisible();
- executeJs("arguments[0].value='TestUI';", googleLandingPage.getGoogleSearchInput()
- .getSelenideElement().getWrappedElement());
- googleLandingPage.getGoogleSearchInput().given().shouldBe().visible().sendKeys("TestUI");
- googleLandingPage.getGoogleSearch().shouldHave().not().emptyText();
googleLandingPage.getGoogleSearch().given().waitFor(10).untilIsVisible()
.then().click().saveScreenshot("/Users/alvarolasernalopez/Documents/screen" +
".png");
@@ -103,7 +86,6 @@ public void testDesktopBrowserStatusCode() {
Configuration.automationType = DESKTOP_PLATFORM;
Configuration.logNetworkCalls = true;
Configuration.browser = "chrome";
- Configuration.remote = "http://localhost:4444/wd/hub";
open("https://www.google.com")
.getNetworkCalls().logAllCalls().filterByExactUrl("https://www.google.com/")
.logFilteredCalls()
@@ -124,33 +106,18 @@ public void testDesktopBrowserStatusCode() {
@DisplayName("Laptop browser test case")
public void testDesktopCustomDriverBrowser() {
Configuration.automationType = DESKTOP_PLATFORM;
- open("https://www.google.com");
Configuration.browser = "chrome";
- googleLandingPage.getGoogleSearchInput().given().waitFor(5).untilIsVisible();
- executeJs("arguments[0].value='TestUI';", googleLandingPage.getGoogleSearchInput()
- .getSelenideElement().getWrappedElement());
- googleLandingPage.getGoogleSearchInput().given().shouldBe().visible().sendKeys("TestUI");
- googleLandingPage.getGoogleSearch().shouldHave().not().emptyText().shouldHave()
- .currentUrlEqualTo("https://www.google.com/")
- .shouldHave().currentUrlContains("https://www.google");
- googleLandingPage.getGoogleSearch().given().waitFor(10).untilIsVisible()
- .then().click().saveScreenshot("/Users/alvarolasernalopez/Documents/screen" +
- ".png");
-
+ open("https://www.google.com");
stop();
ChromeOptions options = new ChromeOptions();
String userAgent = "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)";
options.addArguments("--user-agent=" + userAgent);
ChromeDriver chromeDriver = new ChromeDriver(options);
setDriver(chromeDriver);
- open("https://www.google.com");
+ open("https://www.whatsmyua.info/");
+ E(byCssSelector("textarea")).waitFor(10).untilHasText(userAgent);
stop();
open("https://www.google.com");
- googleLandingPage.getGoogleSearchInput().given().waitFor(5).untilIsVisible();
- executeJs("arguments[0].value='TestUI';", googleLandingPage.getGoogleSearchInput()
- .getSelenideElement().getWrappedElement());
- googleLandingPage.getGoogleSearchInput().given().shouldBe().visible().sendKeys("TestUI");
- googleLandingPage.getGoogleSearch().shouldHave().not().emptyText();
stop();
}
@@ -161,12 +128,7 @@ public void testAndroidBrowserOneLine() {
Configuration.useAllure = false;
Configuration.softAsserts = true;
Configuration.browser = "chrome";
- GridTestUI gridTestUI = new GridTestUI();
- gridTestUI.setServerURL("http://admin:admin@localhost:8000")
- .setPlatform("linux")
- .setConfiguration();
Configuration.testUILogLevel = LogLevel.DEBUG;
-// Configuration.browserLogs = true;
open("https://loadero.com/login")
.given("I set element").setElement(byCssSelector("#username"))
.and("I check if visible").waitFor(5).untilIsVisible()
diff --git a/src/test/java/TestRunners/TestIOS.java b/src/test/java/TestRunners/TestIOS.java
index 85f75ec..bc75cae 100644
--- a/src/test/java/TestRunners/TestIOS.java
+++ b/src/test/java/TestRunners/TestIOS.java
@@ -4,7 +4,6 @@
import org.junit.Test;
import pages.FacebookLandingPage;
import testUI.Configuration;
-import testUI.Utils.GridTestUI;
import static testUI.TestUIDriver.getIOSTestUIDriver;
import static testUI.UIOpen.open;
@@ -15,70 +14,9 @@ public class TestIOS {
@Test
@DisplayName("IOS browser test case")
public void testIOSBrowser() {
-// GridTestUI gridTestUI = new GridTestUI();
-// gridTestUI.setPlatform(gridTestUI.IOS_PLATFORM).setConfiguration();
Configuration.automationType = Configuration.IOS_PLATFORM;
Configuration.serverLogLevel = "all";
open("https://www.facebook.com");
System.out.println(getIOSTestUIDriver().getBatteryInfo().getState());
- facebookLandingPage.getSafariFacebookEmailDiv().click();
- facebookLandingPage.getSafariFacebookEmailInput()
- .given().waitFor(5).untilIsVisible()
- .when().sendKeys("email@email.com")
- .then().shouldHave().theAttribute("value")
- .and().shouldHave().value("email@email.com")
- .and().shouldHave().attribute("value").not().equalTo("whatever");
- facebookLandingPage.getSafariFacebookEmailInput()
- .then().waitFor(5).untilHasAttribute("value")
- .equalTo("email@email.com");
- facebookLandingPage.getSafariFacebookPasswordInput()
- .given().sendKeys("password")
- .then().shouldHave().value("password")
- .then().clear();
- }
-
- @Test
- @DisplayName("IOS browser test case")
- public void testIOSBrowser2() {
- Configuration.automationType = Configuration.IOS_PLATFORM;
- Configuration.serverLogLevel = "all";
- open("https://www.facebook.com");
- System.out.println(getIOSTestUIDriver().getBatteryInfo().getState());
- facebookLandingPage.getSafariFacebookEmailDiv().click();
- facebookLandingPage.getSafariFacebookEmailInput()
- .given().waitFor(5).untilIsVisible()
- .when().sendKeys("email@email.com")
- .then().shouldHave().theAttribute("value")
- .and().shouldHave().value("email@email.com")
- .and().shouldHave().attribute("value").not().equalTo("whatever");
- facebookLandingPage.getSafariFacebookEmailInput()
- .then().waitFor(5).untilHasAttribute("value")
- .equalTo("email@email.com");
- facebookLandingPage.getSafariFacebookPasswordInput()
- .given().sendKeys("password")
- .then().shouldHave().value("password")
- .then().clear();
- }
-
- @Test
- @DisplayName("IOS browser test case")
- public void testIOSBrowser3() {
- Configuration.automationType = Configuration.IOS_PLATFORM;
- open("https://www.facebook.com");
- System.out.println(getIOSTestUIDriver().getBatteryInfo().getState());
- facebookLandingPage.getSafariFacebookEmailDiv().click();
- facebookLandingPage.getSafariFacebookEmailInput()
- .given().waitFor(5).untilIsVisible()
- .when().sendKeys("email@email.com")
- .then().shouldHave().theAttribute("value")
- .and().shouldHave().value("email@email.com")
- .and().shouldHave().attribute("value").not().equalTo("whatever");
- facebookLandingPage.getSafariFacebookEmailInput()
- .then().waitFor(5).untilHasAttribute("value")
- .equalTo("email@email.com");
- facebookLandingPage.getSafariFacebookPasswordInput()
- .given().sendKeys("password")
- .then().shouldHave().value("password")
- .then().clear();
}
}
diff --git a/src/test/java/TestRunners/TestJUnit.java b/src/test/java/TestRunners/TestJUnit.java
index 1cc501d..f8ef644 100644
--- a/src/test/java/TestRunners/TestJUnit.java
+++ b/src/test/java/TestRunners/TestJUnit.java
@@ -1,49 +1,43 @@
package TestRunners;
+import io.netty.handler.logging.LogLevel;
import io.qameta.allure.junit4.DisplayName;
import org.junit.Test;
-import pages.FacebookLandingPage;
import pages.GoogleLandingPage;
-import pages.LandingPage;
import testUI.Configuration;
import static testUI.UIOpen.open;
public class TestJUnit {
- private LandingPage landingPage = new LandingPage();
private GoogleLandingPage googleLandingPage = new GoogleLandingPage();
- private FacebookLandingPage facebookLandingPage = new FacebookLandingPage();
@Test
@DisplayName("Android app test case")
public void testAndroidApp() {
- Configuration.androidAppPath = "1188.apk";
+ Configuration.appPackage = "com.android.vending";
+ Configuration.appActivity = ".AssetBrowserActivity";
+ Configuration.automationType = Configuration.ANDROID_PLATFORM;
open();
- landingPage.getCatering().given().waitFor(10).untilIsVisible().then().click();
- landingPage.getNearMeCollection().get(1).then().waitFor(5).untilIsVisible()
- .and().click();
- System.out.println(landingPage.getSuggestedCollection().findByVisible().and().getText());
}
@Test
@DisplayName("Android browser test case")
public void testAndroidBrowser() {
+ Configuration.automationType = Configuration.ANDROID_PLATFORM;
+ Configuration.testUILogLevel = LogLevel.DEBUG;
+ Configuration.UDID = "emulator-5554";
+ Configuration.installMobileChromeDriver = true;
+ Configuration.appiumUrl = "http://localhost:4723/wd/hub";
open("https://www.google.com")
- .given().setElement(googleLandingPage.getGoogleSearchInput())
- .and().waitFor(5).untilIsVisible().then().sendKeys("TestUI")
- .when().setElement(googleLandingPage.getGoogleSearch())
- .and().waitFor(10).untilIsVisible().then().click();
+ .given().setElement(googleLandingPage.getGoogleSearchInput());
}
@Test
@DisplayName("IOS app test case")
public void testIOSApp() {
Configuration.automationType = Configuration.IOS_PLATFORM;
- Configuration.iOSVersion = "12.2";
- Configuration.iOSAppPath
- = "/Users/alvarolasernalopez/Documents/Automation/" +
- "testapp/build/Release-iphonesimulator/testapp.app";
- Configuration.iOSDeviceName = "iPhone 6";
+ Configuration.useNewWDA = false;
+ Configuration.bundleId = "com.apple.Preferences";
open();
}
@@ -51,20 +45,7 @@ public void testIOSApp() {
@DisplayName("IOS browser test case")
public void testIOSBrowser() {
Configuration.automationType = Configuration.IOS_PLATFORM;
+ Configuration.useNewWDA = false;
open("https://www.facebook.com");
- facebookLandingPage.getSafariFacebookEmailDiv().click();
- facebookLandingPage.getSafariFacebookEmailInput()
- .given().waitFor(5).untilIsVisible()
- .when().sendKeys("email@email.com")
- .then().shouldHave().theAttribute("value")
- .and().shouldHave().value("email@email.com")
- .and().shouldHave().attribute("value").not().equalTo("whatever");
- facebookLandingPage.getSafariFacebookEmailInput()
- .then().waitFor(5)
- .untilHasAttribute("value").equalTo("email@email.com");
- facebookLandingPage.getSafariFacebookPasswordInput()
- .given().sendKeys("password")
- .then().shouldHave().value("password")
- .then().clear();
}
}
diff --git a/src/test/java/stepDefinitions/simpleSteps.java b/src/test/java/stepDefinitions/simpleSteps.java
index 7d92da0..c774a8d 100644
--- a/src/test/java/stepDefinitions/simpleSteps.java
+++ b/src/test/java/stepDefinitions/simpleSteps.java
@@ -53,12 +53,6 @@ public void iClickOnMap(){
@When("I search for {word} in Google")
public void iClickOnGoogleSearching(String search){
- googleLandingPage.getGoogleCookies().click();
- googleLandingPage.getGoogleSearchInput().given().waitFor(5)
- .untilIsVisible().then().sendKeys(search);
- googleLandingPage.getGoogleSearch().given().waitFor(30)
- .untilIsEnabled().then().click();
- sleep(2000);
}
@Then("I take screenshot in all devices")
@@ -68,13 +62,6 @@ public void iTakeScreenshotInAllDevices() {
@When("I search for {word} in Google and fail assertion")
public void iClickOnGoogleSearchingAndFail(String search){
- googleLandingPage.getGoogleSearchInput()
- .given().waitFor(5).untilIsVisible()
- .then().sendKeys(search)
- .and().should().containText("fakeText");
- // Tailored assert that takes screenshot on failure:
- UIAssert("Fail assert",
- googleLandingPage.getGoogleSearchInput().getText().equals("fakeText"));
}
@Given("I am using {word} browser")