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
Binary file added Appium_Java/TestAppium/APK/ApiDemos-debug.apk
Binary file not shown.
630 changes: 630 additions & 0 deletions Appium_Java/TestAppium/Test Results - DriverCapabilityTest.html

Large diffs are not rendered by default.

41 changes: 41 additions & 0 deletions Appium_Java/TestAppium/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>org.example.appiumexample</groupId>
<artifactId>TestAppium</artifactId>
<version>1.0-SNAPSHOT</version>

<dependencies>
<!-- https://mvnrepository.com/artifact/io.appium/java-client -->
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>9.0.0</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.testng/testng -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.9.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>RELEASE</version>
<scope>test</scope>
</dependency>


</dependencies>
<properties>
<maven.compiler.source>15</maven.compiler.source>
<maven.compiler.target>15</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package org.example.appiumexample;

public class Main {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
44 changes: 44 additions & 0 deletions Appium_Java/TestAppium/src/test/java/StartAppiumServer.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import io.appium.java_client.AppiumBy;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.remote.MobilePlatform;
import io.appium.java_client.service.local.AppiumDriverLocalService;
import io.appium.java_client.service.local.AppiumServiceBuilder;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

import java.awt.*;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;

public class StartAppiumServer{

AppiumDriver driver;
@Test
void TestApp() throws MalformedURLException {
DesiredCapabilities cap = new DesiredCapabilities();

cap.setCapability("platformName", MobilePlatform.ANDROID);
cap.setCapability("appium:automationName", "uiautomator2");
cap.setCapability("appium:deviceName", "vivi 22");
cap.setCapability("appPackage", "io.appium.android.apis");
cap.setCapability("appActivity", "io.appium.android.apis.ApiDemos");

driver = new AndroidDriver(new URL("http://0.0.0.0:4723"), cap);

driver.manage().timeouts().implicitlyWait(200, TimeUnit.SECONDS);

WebElement text = driver.findElement(AppiumBy.xpath("//android.wedget.TextView[@content-desc=\"Text\"]"));
System.out.println(text.getText());
}

@AfterTest
public void TearDown(){
driver.quit();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,187 @@
package driver_capability;

import io.appium.java_client.AppiumBy;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.Activity;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.StartsActivity;
import io.appium.java_client.remote.AutomationName;
import io.appium.java_client.remote.MobilePlatform;
import io.appium.java_client.remote.options.BaseOptions;
import io.appium.java_client.service.local.AppiumDriverLocalService;
import io.appium.java_client.service.local.AppiumServiceBuilder;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.bidi.log.Log;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.*;

import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.sql.Driver;
import java.time.Duration;
import java.util.List;
import java.util.concurrent.TimeUnit;

public class DriveAndroidCommand {

AndroidDriver driver;

public static AppiumDriverLocalService service;

//Options: Node JS file path is Options and required only in case of your node and appium is on different server
public static String NodeJSExePath = "C:\\Program Files\\nodejs\\node.exe";

//Options: Appium JS file path is Options and required only in case of your node and appium is on different server
//public static String NodeJSMainPath = "C:\\Users\\T0185CK\\AppData\\Roaming\\npm\\node_modules\\appium\\lib\\appium.js";
public static String NodeJSMainPath = "C:\\Users\\T0185CK\\AppData\\Roaming\\npm\\node_modules\\appium";

//Server IP address where Appium Server is Running
public static String ServerIPAddress = "127.0.0.1"; // Default Port

// Server PORT where Appium Server is Running
public static Integer ServerPORT = 4723;

// Log file path where you want to store Appium Server log
public static String AppiumLogPath = "D:\\appiumlog.txt";

String appAPkBundledID = "io.appium.android.apis";
String appAPKPath = "\\APK\\ApiDemos-debug.apk";


@BeforeTest
public void StartAppiumServer(){
service = AppiumDriverLocalService.buildService(new AppiumServiceBuilder()
.usingDriverExecutable(new File(NodeJSExePath))
.withAppiumJS(new File(NodeJSMainPath))
.withIPAddress(ServerIPAddress)
.usingPort(ServerPORT)
.withTimeout(Duration.ofSeconds(20))
.withLogFile(new File(AppiumLogPath))
);

service.start();
}


@Test
void TestApp() throws MalformedURLException, InterruptedException {
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability("platformName", MobilePlatform.ANDROID);
cap.setCapability("appium:automationName", "UIAutomator2");
//cap.setCapability(MobileCapabilityType.AUTOMATION_NAME, AutomationName.ANDROID_UIAUTOMATOR2);
cap.setCapability("newCommandTimeout", 80000);
cap.setCapability("appium:deviceName", "vivi 22");


cap.setCapability("appium:fastReset", true);
//cap.setCapability("appium:fullReset", true);
cap.setCapability("appium:noReset", false);

cap.setCapability("app", System.getProperty("user.dir")+appAPKPath);
cap.setCapability("appPackage", "io.appium.android.apis");
cap.setCapability("appActivity", "io.appium.android.apis.ApiDemos");


driver = new AndroidDriver(new URL("http://0.0.0.0:4723"), cap);
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5));
//driver.manage().timeouts().implicitlyWait(25, TimeUnit.SECONDS);



/* if(!driver.isAppInstalled(appAPkBundledID)){
driver.installApp(System.getProperty("user.dir")+appAPKPath);
}*/


//driver.manage().timeouts().pageLoadTimeout(Duration.ofSeconds(10));
//Thread.sleep(8000);
//driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
//driver.manage().timeouts().implicitlyWait(25, TimeUnit.SECONDS);

driver.activateApp(appAPkBundledID);
//driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
//driver.manage().timeouts().implicitlyWait(25, TimeUnit.SECONDS);

Thread.sleep(8000);
driver.runAppInBackground(Duration.ofSeconds(3));
Thread.sleep(5000);

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

boolean isTerminated = driver.terminateApp(appAPkBundledID);
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

if(isTerminated){
driver.activateApp(appAPkBundledID);
}
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));


//Check the listview visibility
boolean isContentListIsDisplayOrNot = driver.findElement(AppiumBy.id("android:id/list")).isDisplayed();
System.out.println("isContentListIsDisplayOrNot: "+isContentListIsDisplayOrNot);


//Find all elements from listview
List<WebElement> elementList = driver.findElements(AppiumBy.id("android:id/text1"));
for (WebElement items : elementList ){
System.out.println("list items: "+items.getText());
}
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5));



//Find elements by accessibilityId and get the text and then Click
WebElement app = driver.findElement(AppiumBy.accessibilityId("App"));
String textString = app.getText();
app.click();


//Find elements by Xpath & contains and get the text and then Click
WebElement activity = driver.findElement(AppiumBy.xpath("//*[contains(@text, \"Activity\")]"));
textString = activity.getText();
activity.click();



driver.findElement(new AppiumBy.ByAndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))"+".scrollIntoView(new UiSelector()" + ".textMatches(\"Screen Orientation"+ "\").instance(0))")).click();


driver.runAppInBackground(Duration.ofSeconds(3));

driver.navigate().back();
driver.navigate().back();
driver.navigate().back();



//Find elements by Xpath & content-desc and get the text and then Click
WebElement text = driver.findElement(AppiumBy.xpath("//android.widget.TextView[@content-desc=\"Text\"]"));
textString = text.getText();
text.click();






driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));


}





@AfterTest
public void TearDown(){
//driver.removeApp(appAPkBundledID);
driver.quit();
if(service.isRunning()){
service.stop();
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package driver_capability;

import io.appium.java_client.AppiumBy;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.remote.options.BaseOptions;
import org.openqa.selenium.WebElement;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

import java.net.MalformedURLException;
import java.net.URL;

public class DriverLunchUsingBaseOption {

AppiumDriver driver;

@BeforeClass
public void Setup(){

}


@Test
void TestApp() throws MalformedURLException {
var options = new BaseOptions()
.amend("appium:automationName", "uiautomator2")
.amend("platformName", "Android")
.amend("appium:deviceName", "vivi 22")
//.amend("appium:ensureWebviewsHavePages", true)
//.amend("appium:nativeWebScreenshot", true)
.amend("appium:newCommandTimeout", 3600);
//.amend("appium:connectHardwareKeyboard", true);


URL getUrl = new URL("http://127.0.0.1:4723");
driver = new AndroidDriver(getUrl, options);

WebElement text = driver.findElement(AppiumBy.xpath("//android.widget.TextView[@content-desc=\"Text\"]"));
System.out.println(text.getText());


}



@AfterTest
public void TearDown(){
driver.quit();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package driver_capability;

import io.appium.java_client.AppiumBy;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.remote.MobilePlatform;
import io.appium.java_client.service.local.AppiumDriverLocalService;
import io.appium.java_client.service.local.AppiumServiceBuilder;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.time.Duration;

public class DriverLunchUsingDesiredCapabilities {

AppiumDriver driver;



@Test
void TestApp() throws MalformedURLException {
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability("platformName", MobilePlatform.ANDROID);
cap.setCapability("appium:automationName", "uiautomator2");
cap.setCapability("appium:deviceName", "vivi 22");

cap.setCapability("appPackage", "io.appium.android.apis");
cap.setCapability("appActivity", "io.appium.android.apis.ApiDemos");


driver = new AndroidDriver(new URL("http://0.0.0.0:4723"), cap);
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5));

WebElement text = driver.findElement(AppiumBy.xpath("//android.widget.TextView[@content-desc=\"Text\"]"));
System.out.println(text.getText());
text.click();


}



@AfterTest
public void TearDown(){
driver.quit();
}
}
Loading