Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 23 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>com.testdevlab</groupId>
<artifactId>TestUI</artifactId>
<version>2.0.0</version>
<version>2.0.1</version>

<developers>
<developer>
Expand Down Expand Up @@ -132,10 +132,29 @@
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.6.0</version>
</dependency>
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>8.0.0</version>
<exclusions>
<exclusion>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-remote-driver</artifactId>
</exclusion>
<exclusion>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-support</artifactId>
</exclusion>
</exclusions>
<version>8.1.0</version>
</dependency>
<dependency>
<groupId>net.lightbody.bmp</groupId>
Expand All @@ -150,7 +169,8 @@
<dependency>
<groupId>com.codeborne</groupId>
<artifactId>selenide</artifactId>
<version>6.7.4</version>

<version>6.10.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
Expand Down
20 changes: 9 additions & 11 deletions src/main/java/testUI/AndroidUtils/ADBUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -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*";
Expand Down Expand Up @@ -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) {
Expand Down
46 changes: 23 additions & 23 deletions src/main/java/testUI/AndroidUtils/AndroidCapabilities.java
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -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);
Expand Down Expand Up @@ -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;
Expand All @@ -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;
Expand All @@ -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;
}

Expand Down
27 changes: 18 additions & 9 deletions src/main/java/testUI/AndroidUtils/AndroidOpen.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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 = "";
Expand All @@ -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 = "";
}
Expand All @@ -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;
Expand All @@ -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");
Expand Down Expand Up @@ -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);
Expand All @@ -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()
);
}
}
Expand Down
1 change: 1 addition & 0 deletions src/main/java/testUI/Configuration.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Loading