Best Carina code snippet using com.qaprosoft.carina.core.foundation.webdriver.device.Device.isAppInstall
Source:Device.java
...213 LOGGER.info("Following cmd will be executed: " + Arrays.toString(cmd));214 List<String> packagesList = executor.execute(cmd);215 return packagesList;216 }217 public boolean isAppInstall(final String packageName) {218 return !getFullPackageByName(packageName).contains("not found");219 }220 @Deprecated221 public void pullFile(String pathFrom, String pathTo) {222 if (isNull())223 return;224 String[] cmd = CmdLine.insertCommandsAfter(executor.getDefaultCmd(), "-s", getAdbName(), "pull", pathFrom, pathTo);225 executor.execute(cmd);226 }227 private Boolean getScreenState() {228 // determine current screen status229 // adb -s <udid> shell dumpsys input_method | find "mScreenOn"230 String[] cmd = CmdLine.insertCommandsAfter(executor.getDefaultCmd(), "-s", getAdbName(), "shell", "dumpsys",231 "input_method");232 List<String> output = executor.execute(cmd);233 Boolean screenState = null;234 String line;235 Iterator<String> itr = output.iterator();236 while (itr.hasNext()) {237 // mScreenOn - default value for the most of Android devices238 // mInteractive - for Nexuses239 line = itr.next();240 if (line.contains("mScreenOn=true") || line.contains("mInteractive=true")) {241 screenState = true;242 break;243 }244 if (line.contains("mScreenOn=false") || line.contains("mInteractive=false")) {245 screenState = false;246 break;247 }248 }249 if (screenState == null) {250 LOGGER.error(getUdid()251 + ": Unable to determine existing device screen state!");252 return screenState; // no actions required if state is not recognized.253 }254 if (screenState) {255 LOGGER.info(getUdid() + ": screen is ON");256 }257 if (!screenState) {258 LOGGER.info(getUdid() + ": screen is OFF");259 }260 return screenState;261 }262 public void screenOff() {263 if (!Configuration.getPlatform().equalsIgnoreCase(SpecialKeywords.ANDROID)) {264 return;265 }266 if (!Configuration.getBoolean(Parameter.MOBILE_SCREEN_SWITCHER)) {267 return;268 }269 if (isNull())270 return;271 Boolean screenState = getScreenState();272 if (screenState == null) {273 return;274 }275 if (screenState) {276 String[] cmd = CmdLine.insertCommandsAfter(executor.getDefaultCmd(), "-s", getAdbName(), "shell", "input",277 "keyevent", "26");278 executor.execute(cmd);279 CommonUtils.pause(5);280 screenState = getScreenState();281 if (screenState) {282 LOGGER.error(getUdid() + ": screen is still ON!");283 }284 if (!screenState) {285 LOGGER.info(getUdid() + ": screen turned off.");286 }287 }288 }289 public void screenOn() {290 if (!Configuration.getPlatform().equalsIgnoreCase(SpecialKeywords.ANDROID)) {291 return;292 }293 if (!Configuration.getBoolean(Parameter.MOBILE_SCREEN_SWITCHER)) {294 return;295 }296 if (isNull())297 return;298 Boolean screenState = getScreenState();299 if (screenState == null) {300 return;301 }302 if (!screenState) {303 String[] cmd = CmdLine.insertCommandsAfter(executor.getDefaultCmd(), "-s", getAdbName(), "shell",304 "input", "keyevent", "26");305 executor.execute(cmd);306 CommonUtils.pause(5);307 // verify that screen is Off now308 screenState = getScreenState();309 if (!screenState) {310 LOGGER.error(getUdid() + ": screen is still OFF!");311 }312 if (screenState) {313 LOGGER.info(getUdid() + ": screen turned on.");314 }315 }316 }317 public void pressKey(int key) {318 if (isNull())319 return;320 String[] cmd = CmdLine.insertCommandsAfter(executor.getDefaultCmd(), "-s", getAdbName(), "shell", "input",321 "keyevent", String.valueOf(key));322 executor.execute(cmd);323 }324 public void pause(long timeout) {325 CommonUtils.pause(timeout);326 }327 public void clearAppData() {328 clearAppData(Configuration.getMobileApp());329 }330 public void clearAppData(String app) {331 if (!Configuration.getPlatform().equalsIgnoreCase(SpecialKeywords.ANDROID)) {332 return;333 }334 if (isNull())335 return;336 // adb -s UDID shell pm clear com.myfitnesspal.android337 String packageName = getApkPackageName(app);338 String[] cmd = CmdLine.insertCommandsAfter(executor.getDefaultCmd(), "-s", getAdbName(), "shell", "pm", "clear", packageName);339 executor.execute(cmd);340 }341 public String getApkPackageName(String apkFile) {342 // aapt dump badging <apk_file> | grep versionCode343 // aapt dump badging <apk_file> | grep versionName344 // output:345 // package: name='com.myfitnesspal.android' versionCode='9025' versionName='develop-QA' platformBuildVersionName='6.0-2704002'346 String packageName = "";347 String[] cmd = CmdLine.insertCommandsAfter("aapt dump badging".split(" "), apkFile);348 List<String> output = executor.execute(cmd);349 // parse output command and get appropriate data350 for (String line : output) {351 if (line.contains("versionCode") && line.contains("versionName")) {352 LOGGER.debug(line);353 String[] outputs = line.split("'");354 packageName = outputs[1]; // package355 }356 }357 return packageName;358 }359 public void uninstallApp(String packageName) {360 if (isNull())361 return;362 // adb -s UDID uninstall com.myfitnesspal.android363 String[] cmd = CmdLine.insertCommandsAfter(executor.getDefaultCmd(), "-s", getAdbName(), "uninstall", packageName);364 executor.execute(cmd);365 }366 public void installApp(String apkPath) {367 if (isNull())368 return;369 // adb -s UDID install com.myfitnesspal.android370 String[] cmd = CmdLine.insertCommandsAfter(executor.getDefaultCmd(), "-s", getAdbName(), "install", "-r", apkPath);371 executor.execute(cmd);372 }373 public synchronized void installAppSync(String apkPath) {374 if (isNull())375 return;376 // adb -s UDID install com.myfitnesspal.android377 String[] cmd = CmdLine.insertCommandsAfter(executor.getDefaultCmd(), "-s", getAdbName(), "install", "-r", apkPath);378 executor.execute(cmd);379 }380 /*381 * public void reinstallApp() {382 * if (!Configuration.getPlatform().equalsIgnoreCase(SpecialKeywords.ANDROID)) {383 * return;384 * }385 * 386 * if (isNull())387 * return;388 * 389 * String mobileApp = Configuration.getMobileApp();390 * String oldMobileApp = Configuration.get(Parameter.MOBILE_APP_PREUPGRADE);391 * 392 * if (!oldMobileApp.isEmpty()) {393 * //redefine strategy to do upgrade scenario394 * R.CONFIG.put(Parameter.MOBILE_APP_UNINSTALL.getKey(), "true");395 * R.CONFIG.put(Parameter.MOBILE_APP_INSTALL.getKey(), "true");396 * }397 * 398 * if (Configuration.getBoolean(Parameter.MOBILE_APP_UNINSTALL)) {399 * // explicit reinstall the apk400 * String[] apkVersions = getApkVersion(mobileApp);401 * if (apkVersions != null) {402 * String appPackage = apkVersions[0];403 * 404 * String[] apkInstalledVersions = getInstalledApkVersion(appPackage);405 * 406 * LOGGER.info("installed app: " + apkInstalledVersions[2] + "-" + apkInstalledVersions[1]);407 * LOGGER.info("new app: " + apkVersions[2] + "-" + apkVersions[1]);408 * 409 * if (apkVersions[1].equals(apkInstalledVersions[1]) && apkVersions[2].equals(apkInstalledVersions[2]) && oldMobileApp.isEmpty()) {410 * LOGGER.info(411 * "Skip application uninstall and cache cleanup as exactly the same version is already installed.");412 * } else {413 * uninstallApp(appPackage);414 * clearAppData(appPackage);415 * isAppInstalled = false;416 * if (!oldMobileApp.isEmpty()) {417 * LOGGER.info("Starting sync install operation for preupgrade app: " + oldMobileApp);418 * installAppSync(oldMobileApp);419 * }420 * 421 * if (Configuration.getBoolean(Parameter.MOBILE_APP_INSTALL)) {422 * // install application in single thread to fix issue with gray Google maps423 * LOGGER.info("Starting sync install operation for app: " + mobileApp);424 * installAppSync(mobileApp);425 * }426 * }427 * }428 * } else if (Configuration.getBoolean(Parameter.MOBILE_APP_INSTALL) && !isAppInstalled) {429 * LOGGER.info("Starting install operation for app: " + mobileApp);430 * installApp(mobileApp);431 * isAppInstalled = true;432 * }433 * }434 */435 public String[] getInstalledApkVersion(String packageName) {436 // adb -s UDID shell dumpsys package PACKAGE | grep versionCode437 if (isNull())438 return null;439 String[] res = new String[3];440 res[0] = packageName;441 String[] cmd = CmdLine.insertCommandsAfter(executor.getDefaultCmd(), "-s", getAdbName(), "shell", "dumpsys", "package", packageName);442 List<String> output = executor.execute(cmd);443 for (String line : output) {444 LOGGER.debug(line);445 if (line.contains("versionCode")) {446 // versionCode=17040000 targetSdk=25447 LOGGER.info("Line for parsing installed app: " + line);448 String[] outputs = line.split("=");449 String tmp = outputs[1]; // everything after '=' sign450 res[1] = tmp.split(" ")[0];451 }452 if (line.contains("versionName")) {453 // versionName=8.5.0454 LOGGER.info("Line for parsing installed app: " + line);455 String[] outputs = line.split("=");456 res[2] = outputs[1];457 }458 }459 if (res[0] == null && res[1] == null && res[2] == null) {460 return null;461 }462 return res;463 }464 public String[] getApkVersion(String apkFile) {465 // aapt dump badging <apk_file> | grep versionCode466 // aapt dump badging <apk_file> | grep versionName467 // output:468 // package: name='com.myfitnesspal.android' versionCode='9025' versionName='develop-QA' platformBuildVersionName='6.0-2704002'469 String[] res = new String[3];470 res[0] = "";471 res[1] = "";472 res[2] = "";473 String[] cmd = CmdLine.insertCommandsAfter("aapt dump badging".split(" "), apkFile);474 List<String> output = executor.execute(cmd);475 // parse output command and get appropriate data476 for (String line : output) {477 if (line.contains("versionCode") && line.contains("versionName")) {478 LOGGER.debug(line);479 String[] outputs = line.split("'");480 res[0] = outputs[1]; // package481 res[1] = outputs[3]; // versionCode482 res[2] = outputs[5]; // versionName483 }484 }485 return res;486 }487 public List<String> execute(String[] cmd) {488 return executor.execute(cmd);489 }490 public void setProxy(final String host, final String port, final String ssid, final String password) {491 if (!getOs().equalsIgnoreCase(DeviceType.Type.ANDROID_PHONE.getFamily())) {492 LOGGER.error("Proxy configuration is available for Android ONLY");493 throw new RuntimeException("Proxy configuration is available for Android ONLY");494 }495 if (!isAppInstall(SpecialKeywords.PROXY_SETTER_PACKAGE)) {496 final String proxySetterFileName = "./proxy-setter-temp.apk";497 File targetFile = new File(proxySetterFileName);498 downloadFileFromJar(SpecialKeywords.PROXY_SETTER_RES_PATH, targetFile);499 installApp(proxySetterFileName);500 }501 String deviceUdid = getAdbName();502 LOGGER.info("Device udid: ".concat(deviceUdid));503 String[] cmd = CmdLine.createPlatformDependentCommandLine("adb", "-s", deviceUdid, "shell", "am", "start", "-n",504 "tk.elevenk.proxysetter/.MainActivity", "-e", "host", host, "-e", "port", port, "-e", "ssid", ssid, "-e", "key", password);505 LOGGER.info("Following cmd will be executed: " + Arrays.toString(cmd));506 executor.execute(cmd);507 }508 private void downloadFileFromJar(final String path, final File targetFile) {509 InputStream initialStream = Device.class.getClassLoader().getResourceAsStream(path);...
isAppInstall
Using AI Code Generation
1import com.qaprosoft.carina.core.foundation.webdriver.device.Device;2import com.qaprosoft.carina.core.foundation.webdriver.device.DevicePool;3import com.qaprosoft.carina.core.foundation.webdriver.device.DeviceType;4public class DevicePoolTest {5 public static void main(String[] args) throws Exception {6 DevicePool devicePool = new DevicePool();7 devicePool.init("src/test/resources/devices.json");8 devicePool.printDevices();9 Device device = devicePool.getDevice(DeviceType.ANDROID);10 System.out.println("ANDROID device: " + device);11 device = devicePool.getDevice(DeviceType.IOS);12 System.out.println("IOS device: " + device);13 device = devicePool.getDevice(DeviceType.DESKTOP);14 System.out.println("DESKTOP device: " + device);15 device = devicePool.getDevice(DeviceType.ANDROID, "Samsung Galaxy Note 9");16 System.out.println("ANDROID device: " + device);17 device = devicePool.getDevice(DeviceType.IOS, "iPhone 11");18 System.out.println("IOS device: " + device);19 device = devicePool.getDevice(DeviceType.DESKTOP, "Chrome 78");20 System.out.println("DESKTOP device: " + device);21 device = devicePool.getDevice(DeviceType.ANDROID, "Samsung Galaxy Note 9", "com.qaprosoft.carina.demo");22 System.out.println("ANDROID device: " + device);23 device = devicePool.getDevice(DeviceType.IOS, "iPhone 11", "com.qaprosoft.carina.demo");24 System.out.println("IOS device: " + device);25 device = devicePool.getDevice(DeviceType.DESKTOP, "Chrome 78", "com.qaprosoft.carina.demo");26 System.out.println("DESKTOP device: " + device);27 device = devicePool.getDevice(DeviceType.ANDROID, "Samsung Galaxy Note 9", "com.qaprosoft.carina.demo", "com.qaprosoft.carina.demo.gui.pages.android.phone.AndroidPhoneHomePage");28 System.out.println("ANDROID device: " + device);29 device = devicePool.getDevice(DeviceType.IOS, "iPhone 11", "com.qaprosoft.carina.demo", "com.qaprosoft.carina.demo.gui.pages.ios.phone.IOSPhoneHomePage");30 System.out.println("IOS device: " + device);31 device = devicePool.getDevice(DeviceType
isAppInstall
Using AI Code Generation
1import com.qaprosoft.carina.core.foundation.webdriver.device.Device;2import com.qaprosoft.carina.core.foundation.webdriver.device.DevicePool;3public class TestAppInstall {4 public static void main(String[] args) {5 Device device = DevicePool.getDevice("Android");6 device.isAppInstalled("com.android.chrome");7 }8}9import com.qaprosoft.carina.core.foundation.webdriver.device.Device;10import com.qaprosoft.carina.core.foundation.webdriver.device.DevicePool;11public class TestAppInstall {12 public static void main(String[] args) {13 Device device = DevicePool.getDevice("Android");14 device.isAppInstalled("com.android.chrome");15 }16}17import com.qaprosoft.carina.core.foundation.webdriver.device.Device;18import com.qaprosoft.carina.core.foundation.webdriver.device.DevicePool;19public class TestAppInstall {20 public static void main(String[] args) {21 Device device = DevicePool.getDevice("Android");22 device.isAppInstalled("com.android.chrome");23 }24}25import com.qaprosoft.carina.core.foundation.webdriver.device.Device;26import com.qaprosoft.carina.core.foundation.webdriver.device.DevicePool;27public class TestAppInstall {28 public static void main(String[] args) {29 Device device = DevicePool.getDevice("Android");30 device.isAppInstalled("com.android.chrome");31 }32}33import com.qaprosoft.carina.core.foundation.webdriver.device.Device;34import com.qaprosoft.carina.core.foundation.webdriver.device.DevicePool;35public class TestAppInstall {36 public static void main(String[] args) {37 Device device = DevicePool.getDevice("Android");38 device.isAppInstalled("com.android.chrome");39 }40}
isAppInstall
Using AI Code Generation
1import com.qaprosoft.carina.core.foundation.webdriver.device.Device;2public class TestIsAppInstall {3 public static void main(String[] args) {4 System.out.println(Device.isAppInstalled("com.facebook.katana"));5 System.out.println(Device.isAppInstalled("com.facebook.katana", "com.facebook.katana"));6 System.out.println(Device.isAppInstalled("com.facebook.katana", "com.facebook.katana", "com.facebook.katana"));7 System.out.println(Device.isAppInstalled("com.facebook.katana", "com.facebook.katana", "com.facebook.katana", "com.facebook.katana"));8 }9}10Example 3: Using isAppInstall() method with appPackage and appActivity11import com.qaprosoft.carina.core.foundation.webdriver.device.Device;12public class TestIsAppInstall {13 public static void main(String[] args) {14 System.out.println(Device.isAppInstalled("com.facebook.katana", "com.facebook.katana"));15 System.out.println(Device.isAppInstalled("com.facebook.katana", "com.facebook.katana", "com.facebook.katana"));16 System.out.println(Device.isAppInstalled("com.facebook.katana", "com.facebook.katana", "com.facebook.katana", "com.facebook.katana"));17 }18}19Example 4: Using isAppInstall() method with appPackage and appActivity and appWaitActivity20import com.qaprosoft.carina.core.foundation.webdriver.device.Device;21public class TestIsAppInstall {22 public static void main(String[] args) {23 System.out.println(Device.isAppInstalled("com.facebook.katana", "com.facebook.katana", "com.facebook.katana"));24 System.out.println(Device.isAppInstalled("com.facebook.katana", "com.facebook.katana", "com.facebook.katana", "com.facebook.katana"));25 }26}27Example 5: Using isAppInstall() method with appPackage and appActivity and appWaitActivity and appWaitPackage
isAppInstall
Using AI Code Generation
1import com.qaprosoft.carina.core.foundation.webdriver.device.Device;2public class AppInstallTest {3 public void testAppInstall() {4 System.out.println("Is app installed? " + Device.isAppInstall("com.qaprosoft.carina.demo"));5 }6}7Example 2: isAppInstall() method with app package name as parameter8public class AppInstallTest {9 public void testAppInstall() {10 System.out.println("Is app installed? " + Device.isAppInstall("com.qaprosoft.carina.demo"));11 }12}13Example 3: isAppInstall() method with app package name and app activity as parameter14public class AppInstallTest {15 public void testAppInstall() {16 System.out.println("Is app installed? " + Device.isAppInstall("com.qaprosoft.carina.demo", ".activities.SplashActivity"));17 }18}19Example 4: isAppInstall() method with app package name and app activity as parameter20public class AppInstallTest {21 public void testAppInstall() {22 System.out.println("Is app installed? " + Device.isAppInstall("com.qaprosoft.carina.demo", ".activities.SplashActivity"));23 }24}25Example 5: isAppInstall() method with app package name and app activity as parameter26public class AppInstallTest {27 public void testAppInstall() {28 System.out.println("Is app installed? " + Device.isAppInstall("com.qaprosoft.carina.demo", ".activities.SplashActivity"));29 }30}31Example 6: isAppInstall() method with app package name and app activity as parameter32public class AppInstallTest {33 public void testAppInstall() {34 System.out.println("Is app installed? " + Device.isAppInstall("com.qaprosoft.carina.demo", ".activities.SplashActivity"));35 }36}37Example 7: isAppInstall() method with app package name and app activity as parameter38public class AppInstallTest {39 public void testAppInstall() {
isAppInstall
Using AI Code Generation
1import com.qaprosoft.carina.core.foundation.webdriver.device.Device;2import org.testng.Assert;3import org.testng.annotations.Test;4public class AppInstallTest {5 public void testAppInstall() {6 boolean isAppInstalled = Device.isAppInstalled("com.android.chrome");7 Assert.assertTrue(isAppInstalled, "Chrome app is not installed");8 isAppInstalled = Device.isAppInstalled("com.android.chrome1");9 Assert.assertFalse(isAppInstalled, "Chrome app is installed");10 }11}
isAppInstall
Using AI Code Generation
1Device device = new Device();2boolean isAppInstalled = device.isAppInstall("com.qaprosoft.carina.demo");3boolean isAppNotInstalled = device.isAppInstall("com.qaprosoft.carina.demo1");4boolean isAppInstalled = device.isAppInstall("com.qaprosoft.carina.demo", "deviceName");5boolean isAppNotInstalled = device.isAppInstall("com.qaprosoft.carina.demo1", "deviceName");6boolean isAppInstalled = device.isAppInstall("com.qaprosoft.carina.demo", "deviceName");7boolean isAppNotInstalled = device.isAppInstall("com.qaprosoft.carina.demo1", "deviceName");8boolean isAppInstalled = device.isAppInstall("com.qaprosoft.carina.demo", "deviceName");9boolean isAppNotInstalled = device.isAppInstall("com.qaprosoft.carina.demo1", "deviceName");10boolean isAppInstalled = device.isAppInstall("com.qaprosoft.carina.demo", "deviceName");11boolean isAppNotInstalled = device.isAppInstall("com.qaprosoft.carina.demo1", "deviceName");12boolean isAppInstalled = device.isAppInstall("com.qaprosoft.carina.demo", "deviceName");13boolean isAppNotInstalled = device.isAppInstall("com.qaprosoft.carina.demo1", "deviceName");14boolean isAppInstalled = device.isAppInstall("com.qaprosoft.carina.demo", "deviceName");15boolean isAppNotInstalled = device.isAppInstall("com.qaprosoft.carina.demo1", "deviceName");16boolean isAppInstalled = device.isAppInstall("com.qaprosoft.carina.demo", "device
isAppInstall
Using AI Code Generation
1import com.qaprosoft.carina.core.foundation.webdriver.device.Device;2import com.qaprosoft.carina.core.foundation.webdriver.device.DevicePool;3import com.qaprosoft.carina.core.foundation.webdriver.device.DeviceType;4public class AppInstall {5 public static void main(String[] args) {6 Device device = DevicePool.getDevice();7 if (!device.isAppInstalled("com.qaprosoft.carina.demo")) {8 device.installApp("
isAppInstall
Using AI Code Generation
1if (Device.isAppInstall("com.google.android.apps.maps")) {2} else {3}4if (Device.isAppInstall("com.google.android.apps.maps")) {5} else {6}7if (Device.isAppInstall("com.google.android.apps.maps")) {8} else {9}10if (Device.isAppInstall("com.google.android.apps.maps")) {11} else {12}13if (Device.isAppInstall("com.google.android.apps.maps")) {14} else {15}16if (Device.isAppInstall("com.google.android.apps.maps")) {17} else {
isAppInstall
Using AI Code Generation
1public class InstallApp {2 @Test(description = "Install app")3 public void testInstallApp() throws MalformedURLException {4 Device device = new Device();5 if (!device.isAppInstall("com.example.android.contactmanager")) {6 }7 }8}9[INFO] --- maven-surefire-plugin:2.18.1:test (default-test) @ carina-demo ---
isAppInstall
Using AI Code Generation
1public class AppiumTest extends AppiumTestNGTest {2 public void testAppium() throws Exception {3 DesiredCapabilities capabilities = new DesiredCapabilities();4 capabilities.setCapability("platformName", "Android");5 capabilities.setCapability("deviceName", "Android Emulator");6 capabilities.setCapability("platformVersion", "7.0");7 capabilities.setCapability("appPackage", "com.qaprosoft.carina.demo");8 capabilities.setCapability("appActivity", "com.qaprosoft.carina.demo.gui.activities.MainActivity");9 capabilities.setCapability("automationName", "UiAutomator2");10 capabilities.setCapability("app", "/Users/alexander.taranov/Desktop/CarinaDemo-debug.apk");11 capabilities.setCapability("noReset", true);12 capabilities.setCapability("fullReset", false);13 capabilities.setCapability("appWaitActivity", "com.qaprosoft.carina.demo.gui.activities.LoginActivity");14 capabilities.setCapability("appWaitPackage", "com.qaprosoft.carina.demo");15 capabilities.setCapability("autoGrantPermissions", true);16 capabilities.setCapability("autoAcceptAlerts", true);17 capabilities.setCapability("autoDismissAlerts", true);18 capabilities.setCapability("unicodeKeyboard", true);19 capabilities.setCapability("resetKeyboard", true);20 capabilities.setCapability("newCommandTimeout", 120);21 capabilities.setCapability("adbExecTimeout", 120000);22 capabilities.setCapability("ignoreHiddenApiPolicyError", true);23 capabilities.setCapability("ignoreUnimportantViews", true);24 capabilities.setCapability("disableAndroidWatchers", true);25 capabilities.setCapability("disableWindowAnimation", true);
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!