Best io.appium code snippet using io.appium.java_client.AppiumFluentWait.until
BasePage.java
Source:BasePage.java
...133 return s.startsWith(UI_SELECTOR) ? s : UI_SELECTOR + s;134 }135 public void click(Object object) {136 if (object instanceof WebElement) {137 wait.until(ExpectedConditions.visibilityOf((WebElement) object)).click();138 } else {139 wait.until(ExpectedConditions.visibilityOfElementLocated(getXpath(object))).click();140 }141 // æ£æ¥é¡µé¢æ¯å¦å¼¹åº"ä¸æ¬¡å说 - ç«å³è¯ä»·"å¼¹æ¡142// try {143// WebElement element = new WebDriverWait(driver, 2).until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@resource-id=\"com.xueqiu.android:id/tv_left\" and @text=\"ä¸æ¬¡å说\"]")));144// element.click();145// } catch (TimeoutException ignored) {146// }147 }148 public void sendKeys(Object object, CharSequence... keysToSend) {149 if (object instanceof WebElement) {150 ((WebElement) object).sendKeys(keysToSend);151 } else {152 wait.until(ExpectedConditions.presenceOfElementLocated(getXpath(object))).sendKeys(keysToSend);153 }154 }155 public void sendKeys(Object object, boolean needToClear, CharSequence... keysToSend) {156 WebElement element;157 if (object instanceof WebElement) {158 element = (WebElement) object;159 } else {160 element = wait.until(ExpectedConditions.presenceOfElementLocated(getXpath(object)));161 }162 if (needToClear) {163 element.clear();164 }165 element.sendKeys(keysToSend);166 }167 public MobileElement find(Object object) {168 try {169 return wait.until(AppiumExpectedConditions.presenceOfElementLocated(getXpath(object)));170 } catch (TimeoutException ignored) {171 return null;172 }173 }174 public MobileElement find(Object object, long timeoutInSeconds) {175 try {176 if (0 >= timeoutInSeconds) {177 return driver.findElement(getXpath(object));178 } else {179 return new AppiumFluentWait<>(driver)180 .withTimeout(Duration.ofSeconds(timeoutInSeconds))181 .until(AppiumExpectedConditions.presenceOfElementLocated(getXpath(object)));182 }183 } catch (TimeoutException ignored) {184 return null;185 }186 }187 public MobileElement find(MobileElement element, Object object) {188 try {189 return wait.until(AppiumExpectedConditions.presenceOfNestedElementLocated(element, getXpath(object)));190 } catch (TimeoutException ignored) {191 return null;192 }193 }194 public MobileElement find(MobileElement element, Object object, long timeoutInSeconds) {195 try {196 if (0 >= timeoutInSeconds) {197 return element.findElement(getXpath(object));198 } else {199 return new AppiumFluentWait<>(driver)200 .withTimeout(Duration.ofSeconds(timeoutInSeconds))201 .until(AppiumExpectedConditions.presenceOfNestedElementLocated(element, getXpath(object)));202 }203 } catch (TimeoutException ignored) {204 return null;205 }206 }207 public List<MobileElement> finds(Object object) {208 try {209 return wait.until(AppiumExpectedConditions.presenceOfAllElementsLocatedBy(getXpath(object)));210 } catch (TimeoutException ignored) {211 return Collections.emptyList();212 }213 }214 public List<MobileElement> finds(Object object, long timeoutInSeconds) {215 try {216 if (0 >= timeoutInSeconds) {217 return driver.findElements(getXpath(object));218 } else {219 return new AppiumFluentWait<>(driver)220 .withTimeout(Duration.ofSeconds(timeoutInSeconds))221 .until(AppiumExpectedConditions.presenceOfAllElementsLocatedBy(getXpath(object)));222 }223 } catch (TimeoutException ignored) {224 return Collections.emptyList();225 }226 }227 public List<MobileElement> finds(MobileElement element, Object object) {228 try {229 return wait.until(AppiumExpectedConditions.presenceOfNestedElementsLocatedBy(element, getXpath(object)));230 } catch (TimeoutException ignored) {231 return Collections.emptyList();232 }233 }234 public List<MobileElement> finds(MobileElement element, Object object, long timeoutInSeconds) {235 try {236 if (0 >= timeoutInSeconds) {237 return element.findElements(getXpath(object));238 } else {239 return new AppiumFluentWait<>(driver)240 .withTimeout(Duration.ofSeconds(timeoutInSeconds))241 .until(AppiumExpectedConditions.presenceOfNestedElementsLocatedBy(element, getXpath(object)));242 }243 } catch (TimeoutException ignored) {244 return Collections.emptyList();245 }246 }247 public boolean isExists(Object object) {248 try {249 return !wait.until(AppiumExpectedConditions.visibilityOfAllElementsLocatedBy(getXpath(object))).isEmpty();250 } catch (TimeoutException ignored) {251 return false;252 }253 }254 public boolean isExists(Object object, long timeoutInSeconds) {255 timeoutInSeconds = (0 >= timeoutInSeconds) ? 1 : timeoutInSeconds;256 try {257 return !new AppiumFluentWait<>(driver)258 .withTimeout(Duration.ofSeconds(timeoutInSeconds))259 .until(AppiumExpectedConditions.visibilityOfAllElementsLocatedBy(getXpath(object)))260 .isEmpty();261 } catch (TimeoutException ignored) {262 return false;263 }264 }265 public boolean isExists(MobileElement element, Object object) {266 try {267 return !wait.until(AppiumExpectedConditions.visibilityOfNestedElementsLocatedBy(element, getXpath(object))).isEmpty();268 } catch (TimeoutException ignored) {269 return false;270 }271 }272 public boolean isExists(MobileElement element, Object object, long timeoutInSeconds) {273 timeoutInSeconds = (0 >= timeoutInSeconds) ? 1 : timeoutInSeconds;274 try {275 return !new AppiumFluentWait<>(driver)276 .withTimeout(Duration.ofSeconds(timeoutInSeconds))277 .until(AppiumExpectedConditions.visibilityOfNestedElementsLocatedBy(element, getXpath(object)))278 .isEmpty();279 } catch (TimeoutException ignored) {280 return false;281 }282 }283 public boolean isNotExists(Object object) {284 try {285 return wait.until(AppiumExpectedConditions.invisibilityOfElementLocated(getXpath(object)));286 } catch (TimeoutException ignored) {287 return false;288 }289 }290 public boolean isNotExists(Object object, long timeoutInSeconds) {291 timeoutInSeconds = (0 >= timeoutInSeconds) ? 1 : timeoutInSeconds;292 try {293 return new AppiumFluentWait<>(driver)294 .withTimeout(Duration.ofSeconds(timeoutInSeconds))295 .until(AppiumExpectedConditions.invisibilityOfElementLocated(getXpath(object)));296 } catch (TimeoutException ignored) {297 return false;298 }299 }300 public boolean isNotExists(MobileElement element, Object object) {301 try {302 return wait.until(AppiumExpectedConditions.invisibilityOfNestedElementLocated(element, getXpath(object)));303 } catch (TimeoutException ignored) {304 return false;305 }306 }307 public boolean isNotExists(MobileElement element, Object object, long timeoutInSeconds) {308 timeoutInSeconds = (0 >= timeoutInSeconds) ? 1 : timeoutInSeconds;309 try {310 return new AppiumFluentWait<>(driver)311 .withTimeout(Duration.ofSeconds(timeoutInSeconds))312 .until(AppiumExpectedConditions.invisibilityOfNestedElementLocated(element, getXpath(object)));313 } catch (TimeoutException ignored) {314 return false;315 }316 }317 public MobileElement findUi(String ui) {318 return wait.until(AppiumExpectedConditions.presenceOfAndroidUiLocated(getUIAutomator(ui)));319 }320 public MobileElement scrollToUi(String ui) {321 String uiScrollable = String.format(UI_SCROLLABLE, getUIAutomator(ui));322 return ((AndroidDriver<MobileElement>) driver).findElementByAndroidUIAutomator(uiScrollable);323 }324 public boolean switchToWebView(String contextName) {325 contextName = Optional.ofNullable(contextName).isPresent() ? contextName : "";326 contextName = contextName.isEmpty() ? String.format("%s_%s", WEBVIEW, capabilities.getCapability(APP_PACKAGE)) : contextName;327 try {328 wait.until(AppiumExpectedConditions.webviewToBe(contextName));329 driver.context(contextName);330 return true;331 } catch (TimeoutException ignored) {332 logger.warn("The context '{}' is not exists!", contextName);333 return false;334 }335 }336 public void switchToNativeApp() {337 driver.context(NATIVE_APP);338 }339 public boolean switchToWindow(String title) {340 try {341 WebDriverWait webDriverWait = new WebDriverWait(driver, sleepTime, implicitlyWait);342 webDriverWait.until(WebExpectedConditions.windowToBeAvailableAndSwitchToIt(title));343 webDriverWait.until(ExpectedConditions.titleIs(title));344 return true;345 } catch (TimeoutException ignored) {346 logger.warn("No window found with name or handle or title: {}", title);347 return false;348 }349 }350 public void switchToDefaultContent() {351 driver.switchTo().defaultContent();352 }353 public String getToast() {354 MobileElement element = find(TOAST_XPATH);355 return null != element ? element.getText() : "";356 }357 public void quit() {...
Waiters.java
Source:Waiters.java
...18public class Waiters {19 //fluent wait for an element (used for clicks - wait for element before click)20 public void waitForElementVisibilityAndroid(By element) {21 FluentWait<AndroidDriver> wait = new FluentWait<AndroidDriver>(Drivers.androidDriver).withTimeout(ofSeconds(20)).ignoring(NoSuchElementException.class);22 wait.until(ExpectedConditions.visibilityOfElementLocated(element));23 }24 public void waitForElementVisibilityIOS(By element) {25 FluentWait<IOSDriver> wait = new FluentWait<IOSDriver>(Drivers.driverIos).withTimeout(ofSeconds(20)).ignoring(NoSuchElementException.class);26 wait.until(ExpectedConditions.visibilityOfElementLocated(element));27 }28 public void waiterForWebView(By element) {29 FluentWait<IOSDriver> wait = new FluentWait<IOSDriver>(Drivers.driverIos).withTimeout(ofSeconds(20)).ignoring(NoSuchElementException.class);30 wait.until(ExpectedConditions.visibilityOfElementLocated(element));31 }32 public void waitForElementVisibility(By element) {33 FluentWait<WebDriver> wait = new FluentWait<WebDriver>(Drivers.getDriver())34 .withTimeout(ofSeconds(20))35 .ignoring(NoSuchElementException.class);36 wait.until(ExpectedConditions.presenceOfElementLocated(element));37 }38 public void waitForElementVisibility(MobileElement element) {39 WebDriverWait wait = new WebDriverWait(Drivers.getMobileDriver(), 30);40 wait.ignoring(NoSuchElementException.class)41 .pollingEvery(Duration.ofMillis(500))42 .until(ExpectedConditions.visibilityOf(element));43 }44 public void simulateWaiterInsteadOsThreadSleep(MobileElement element, int timeout) {45 WebDriverWait wait = new WebDriverWait(Drivers.getMobileDriver(), timeout);46 wait.until(ExpectedConditions.visibilityOf(element));47 }48 public void waitForMobileElementToBeClickable(MobileElement element) {49 WebDriverWait wait = new WebDriverWait(Drivers.getMobileDriver(), 30);50 wait.ignoring(NoSuchElementException.class)51 .pollingEvery(Duration.ofMillis(500))52 .until(ExpectedConditions.elementToBeClickable(element));53 }54 public boolean waitForInvisibility(By element, int timeOut) {55 try {56 WebDriverWait wait = new WebDriverWait(Drivers.getMobileDriver(), timeOut);57 wait.until(ExpectedConditions.invisibilityOfElementLocated(element));58 return true;59 } catch (TimeoutException e) {60 MyLogger.log.info("Element is still visible: " + element);61 MyLogger.log.info(e.getMessage());62 throw new TimeoutException();63 }64 }65 public boolean waitForInvisibilityMobile(MobileElement element, int timeOut) {66 try {67 WebDriverWait wait = new WebDriverWait(Drivers.getMobileDriver(), timeOut);68 wait.until(ExpectedConditions.invisibilityOf(element));69 return true;70 } catch (TimeoutException e) {71 MyLogger.log.info("Element is still visible: " + element);72 MyLogger.log.info(e.getMessage());73 throw new TimeoutException();74 }75 }76 public WebElement waitForElement(By by, WaitCondition waitCondition) {77 WebElement element = null;78 try {79 WebDriverWait wait = new WebDriverWait(Drivers.getMobileDriver(), Gestures.WAIT_TIME_IN_SECONDS);80 switch (waitCondition) {81 case CLICKABLE:82 element = wait.until(ExpectedConditions.elementToBeClickable(by));83 break;84 case VISIBLE:85 element = wait.until(ExpectedConditions.visibilityOfElementLocated(by));86 break;87 case INVISIBLE:88 wait.until(ExpectedConditions.invisibilityOfElementLocated(by));89 break;90 default:91 break;92 }93 } catch (Exception ex) {94 ex.printStackTrace();95 }96 return element;97 }98 public static void waitForElementVisibilityWebElement(WebElement elem) {99 MyLogger.log.info("Waiting for element " + elem);100 waitForElementWebElement(ExpectedConditions.visibilityOf(elem), DEFAULT_TIMEOUT);101 }102 private static void waitForElementWebElement(ExpectedCondition<?> condition, int timeout) {103 newWait(Drivers.getDriver(), timeout).until(condition);104 }105 private static Wait<WebDriver> newWait(WebDriver driver, int timeout) {106 return new FluentWait<WebDriver>(driver).withTimeout(ofSeconds(20))107 .pollingEvery(Duration.ofMillis(500)).ignoring(NoSuchElementException.class);108 }109 public enum WaitCondition {110 CLICKABLE, VISIBLE, INVISIBLE;111 /**112 * Returns the name of the enum constant, in lowercase113 */114 @Override115 public String toString() {116 String s = super.toString();117 return s.toLowerCase();118 }119 }120 public void waitForElementVIsibilityMobileElement4(MobileElement element) {121 AppiumFluentWait<WebDriver> wait = new AppiumFluentWait(Drivers.getMobileDriver());122 ExpectedCondition elementIsDisplayed = new ExpectedCondition<Boolean>() {123 public Boolean apply(WebDriver arg0) {124 try {125 element.isDisplayed();126 return false;127 } catch (NoSuchElementException e) {128 return true;129 } catch (StaleElementReferenceException f) {130 return true;131 }132 }133 };134 wait.withTimeout(ofSeconds(10))135 .pollingEvery(ofSeconds(1))136 .until(elementIsDisplayed);137 }138 public void waitUntilElementNotDisplayed(MobileElement element) {139 WebDriverWait wait = new WebDriverWait(Drivers.getMobileDriver(), 20);140 ExpectedCondition elementIsDisplayed = new ExpectedCondition<Boolean>() {141 public Boolean apply(WebDriver arg0) {142 try {143 element.isDisplayed();144 return false;145 } catch (NoSuchElementException e) {146 return true;147 } catch (StaleElementReferenceException f) {148 return true;149 }150 }151 };152 wait.until(elementIsDisplayed);153 }154 public void waitUntilElementContainsText(MobileElement element, String desiredWifi) {155 WebDriverWait wait = new WebDriverWait(Drivers.getMobileDriver(), 20);156 ExpectedCondition elementIsDisplayed = new ExpectedCondition<Boolean>() {157 public Boolean apply(WebDriver arg0) {158 try {159 element.getAttribute("content-desc").contains(desiredWifi);160 return true;161 } catch (NoSuchElementException e) {162 return false;163 } catch (StaleElementReferenceException f) {164 return false;165 }166 }167 };168 wait.withTimeout(ofSeconds(20))169 .pollingEvery(ofSeconds(1))170 .until(elementIsDisplayed);171 }172 public void waitForElementToBeEnabledMobileElement(MobileElement element) {173 AppiumFluentWait<WebDriver> wait = new AppiumFluentWait(Drivers.getMobileDriver());174 ExpectedCondition elementIsEnabled = new ExpectedCondition<Boolean>() {175 public Boolean apply(WebDriver arg0) {176 try {177 element.isEnabled();178 return true;179 } catch (NoSuchElementException e) {180 return false;181 } catch (StaleElementReferenceException f) {182 return false;183 }184 }185 };186 wait.withTimeout(ofSeconds(20))187 .pollingEvery(ofSeconds(1))188 .until(elementIsEnabled);189 }190}...
FindElement.java
Source:FindElement.java
...45 break;46 // Androidç¹æç47 case "androiduiautomator":48 String value = "new UiSelector().text(" + "\"" + locatedInfo + "\"" + ")";49 element = AndroidWait(driver).until(new Function<AndroidDriver, AndroidElement>() {50 @Override51 public AndroidElement apply(AndroidDriver driver) {52 return (AndroidElement) driver.findElementByAndroidUIAutomator(value);53 }54 });55 break;56 case "accessibilityid":57 value = locatedInfo;58 element = AndroidWait(driver).until(new Function<AndroidDriver, AndroidElement>() {59 @Override60 public AndroidElement apply(AndroidDriver driver) {61 return (AndroidElement) driver.findElementByAccessibilityId(value);62 }63 });64 break;65 default:66 throw new NoSuchElementException("Unexpected type: " + locatedType);67 }68 return element;69 } catch (NoSuchElementException e) {70 logger.info("æ§ä»¶æªåºç°");71 }72 throw new NoSuchElementException("æ§ä»¶è·å失败");73 }74 /**75 * æ ¹æ®ç»å®çæ¥æ¾æ¹å¼æ¥æ¾å
ç´ æ§ä»¶ï¼æ¥æ¾å¤ä¸ªæ¶ï¼ï¼åæ¶ä½¿ç¨æ¾å¼çå¾
76 * @param driver 驱å¨77 * @param locatedType å®ä½ç±»å78 * @param locatedInfo å®ä½ä¿¡æ¯79 * @return å®ä½çå¤ä¸ªå
ç´ 80 * @throws NoSuchElementException å
ç´ æªæ¾å°81 */82 public static List<AndroidElement> findElementsByType(AndroidDriver<AndroidElement> driver,83 String locatedType, String locatedInfo) throws NoSuchElementException {84 // å¤ææ¯å¦æ该å
ç´ åºç°85 try {86 findElementByType(driver, locatedType, locatedInfo);87 List<AndroidElement> elements = new ArrayList<>();88 locatedType = locatedType.toLowerCase();89 switch (locatedType) {90 case "id":91 elements = driver.findElementsById(locatedInfo);92 break;93 case "classname":94 elements = driver.findElementsByClassName(locatedInfo);95 break;96 case "tagname":97 elements = driver.findElementsByTagName(locatedInfo);98 break;99 case "xpath":100 elements = driver.findElementsByXPath(locatedInfo);101 break;102 case "cssselector":103 elements = driver.findElementsByCssSelector(locatedInfo);104 break;105 case "androiduiautomator":106 String value = "new UiSelector().text(" + "\"" + locatedInfo + "\"" + ")";107 elements = driver.findElementsByAndroidUIAutomator(value);108 break;109 case "accessibilityid":110 elements = driver.findElementsByAccessibilityId(locatedInfo);111 break;112 default:113 throw new IllegalStateException("Unexpected type: " + locatedType);114 }115 return elements;116 } catch (NoSuchElementException e) {117 logger.info("æ§ä»¶æªåºç°");118 } catch (Exception e) {119 logger.info("è·åå¤ä¸ªæ§ä»¶å
ç´ å¤±è´¥");120 }121 throw new NoSuchElementException("æ§ä»¶è·å失败");122 }123 /**124 * Seleniumæ¹æ³çå¾
å
ç´ åºç°125 * @param driver 驱å¨126 * @param by å
ç´ å®ä½æ¹å¼127 * @return å
ç´ æ§ä»¶128 */129 public static AndroidElement WaitMostSeconds(AndroidDriver<?> driver, By by) {130 try {131 WebDriverWait AppiumDriverWait = new WebDriverWait(driver, Settings.elementControl.elementWaitTime);132 return (AndroidElement) AppiumDriverWait.until(ExpectedConditions133 .presenceOfElementLocated(by));134 } catch (Exception e) {135 e.printStackTrace();136 }137 throw new NoSuchElementException("å
ç´ æ§ä»¶æªåºç°");138 }139 /**140 * å®ç°Androidç¹æçå
ç´ å®ä½æ¹å¼ççå¾
141 * @param driver 驱å¨142 * @return çå¾
对象143 */144 public static AppiumFluentWait<AndroidDriver> AndroidWait(AndroidDriver<?> driver) {145 return (AppiumFluentWait<AndroidDriver>) new AppiumFluentWait<AndroidDriver>(driver)146 .withTimeout(Duration.ofSeconds(Settings.elementControl.elementWaitTime))...
ElementHelper.java
Source:ElementHelper.java
...36 }).withPollingStrategy(AppiumFluentWait.IterationInfo::getInterval)37 .withTimeout(ofSeconds(3))38 .pollingEvery(ofMillis(200));39 try {40 wait.until(new Function<ElementStore, Boolean>() {41 @Override42 public Boolean apply(ElementStore elementStore) {43 return elementStore.isTouch();44 }45 });46 if (callback != null) callback.onElementTouch(store.getElement());47 } catch (TimeoutException ex) {48 if (callback != null) callback.onTimeout();49 }50 }51 public static void waitForElementByClass(Context context, String className, ElementStatusCallback callback) {52 ElementStore store = new ElementStore();53 final Wait<ElementStore> wait = new AppiumFluentWait<>(store, Clock.systemDefaultZone(), duration -> {54 store.storeElement(context.getDriver().findElementByClassName(className));55 Thread.sleep(duration.toMillis());56 }).withPollingStrategy(AppiumFluentWait.IterationInfo::getInterval)57 .withTimeout(ofSeconds(3))58 .pollingEvery(ofMillis(200));59 try {60 wait.until(new Function<ElementStore, Boolean>() {61 @Override62 public Boolean apply(ElementStore elementStore) {63 return elementStore.isTouch();64 }65 });66 if (callback != null) callback.onElementTouch(store.getElement());67 } catch (TimeoutException ex) {68 if (callback != null) callback.onTimeout();69 }70 }71 public static AndroidElement findElementById(Context context, String rid) {72 AndroidElement result;73 try {74 result = context.getDriver().findElementById(rid);...
Method.java
Source:Method.java
...14public class Method extends BaseTest {15 protected static FluentWait<AppiumDriver> appiumFluentWait;16 private MobileElement findElement(By by) {17 WebDriverWait webDriverWait = new WebDriverWait(appiumDriver, 20);18 MobileElement mobileElement = (MobileElement) webDriverWait.until(ExpectedConditions.presenceOfElementLocated(by));19 return mobileElement;20 }21 public List<MobileElement> findElements(By by) throws Exception {22 List<MobileElement> mobileElementList = null;23 try {24 mobileElementList = appiumFluentWait.until(new ExpectedCondition<List<MobileElement>>() {25 @Nullable26 @Override27 public List<MobileElement> apply(@Nullable WebDriver driver) {28 List<MobileElement> elements = driver.findElements(by);29 return elements.size() > 0 ? elements : null;30 }31 });32 if (mobileElementList == null) {33 throw new NullPointerException(String.format("by = %s Web element list not found", by.toString()));34 }35 } catch (Exception e) {36 throw e;37 }38 return mobileElementList;...
StepImplementation.java
Source:StepImplementation.java
...11import java.time.Duration;12public class StepImplementation extends BaseTest {13 @Step("<id> id li ve <x> isimli elemente tıkla")14 public void clickById(String id, String x){15 appiumFluentWait.until(ExpectedConditions.elementToBeClickable(appiumDriver.findElement(By.id(id))));16 appiumDriver.findElement(By.id(id)).click();17 Logger.info(x + " isimli butona tıklandı");18 }19 @Step("<z> isimli sayfa açıldıysa <id> li elementin boÅ olup olmadıÄını kontrol et")20 public void assertion(String z,String id ){21 Assert.assertNotNull(z + "açılmadı",appiumDriver.findElement(By.id(id)));22 Logger.info(z + " sayfası açıldı");23 }24 @Step("<xpath> xpath li ve <x> isimli elemente tıkla")25 public void clickByXpath(String xpath, String x){26 appiumFluentWait.until(ExpectedConditions.elementToBeClickable(appiumDriver.findElement(By.xpath(xpath))));27 appiumDriver.findElement(By.xpath(xpath)).click();28 Logger.info(x + " isimli butona tıklandı");29 }30 @Step("Sayfayı aÅaÄıya kaydır")31 public void scrollToBottom() throws InterruptedException {32 Dimension dimension = appiumDriver.manage().window().getSize();33 int start_x = (int) (dimension.width*0.5);34 int start_y = (int) (dimension.height*0.8);35 int end_x = (int) (dimension.width*0.5);36 int end_y = (int) (dimension.height*0.2);37 for(int i=0; i<50; i++){38 TouchAction action =39 new TouchAction((PerformsTouchActions) appiumDriver)40 .press(PointOption.point(start_x, start_y))...
BaseScreen.java
Source:BaseScreen.java
...20 public BaseScreen(AppiumDriver<? extends MobileElement> driver) {21 super(driver);22 this.driver = driver;23 wait = newWait(driver);24 wait.until(a -> ((AndroidDriver) a).currentActivity()25 .equals(getCurrentActivity()));26 }27 /**28 * @param driver29 * @return30 */31 private static FluentWait<AppiumDriver<? extends MobileElement>> newWait(AppiumDriver<? extends MobileElement> driver) {32 return new AppiumFluentWait<AppiumDriver<? extends MobileElement>>(driver)33 .ignoring(NoSuchElementException.class).withTimeout(15, TimeUnit.SECONDS)34 .pollingEvery(500, TimeUnit.MILLISECONDS);35 }36 /**37 * @return38 */...
Methods.java
Source:Methods.java
...26 By by = selectorInfo.getBy();27 MobileElement element;28 try {29 logger.info("findElement method called: finding " + key);30 element = (MobileElement) appiumFluentWait.until(ExpectedConditions.presenceOfElementLocated(by));31 } catch (Exception ex) {32 Assert.fail(key + "Element is not found");33 throw ex;34 }35 return element;36 }37 public void click(String key) {38 findElementByKey(key).click();39 }40 public void sendKey(String key, String value) {41 findElementByKey(key).sendKeys(value);42 }43 }...
until
Using AI Code Generation
1public class AppiumFluentWait<T> extends FluentWait<T> {2 public AppiumFluentWait(T input) {3 super(input);4 }5 public AppiumFluentWait<T> withTimeout(long duration, TimeUnit unit) {6 super.withTimeout(duration, unit);7 return this;8 }9 public AppiumFluentWait<T> pollingEvery(long duration, TimeUnit unit) {10 super.pollingEvery(duration, unit);11 return this;12 }13 public AppiumFluentWait<T> ignoring(Class<? extends Throwable> exceptionType) {14 super.ignoring(exceptionType);15 return this;16 }17 public AppiumFluentWait<T> ignoring(Class<? extends Throwable> firstType, Class<? extends Throwable> secondType) {18 super.ignoring(firstType, secondType);19 return this;20 }21 public AppiumFluentWait<T> withMessage(String message) {22 super.withMessage(message);23 return this;24 }25 public AppiumFluentWait<T> until(Function<? super T, Boolean> isTrue) {26 super.until(isTrue);27 return this;28 }29 public AppiumFluentWait<T> until(Function<? super T, Boolean> isTrue, String message) {30 super.until(isTrue);31 return this;32 }33 public <V> AppiumFluentWait<T> until(Function<? super T, V> isTrue, Predicate<V> condition) {34 super.until(isTrue);35 return this;36 }37 public <V> AppiumFluentWait<T> until(Function<? super T, V> isTrue, Predicate<V> condition, String message) {38 super.until(isTrue);39 return this;40 }41}42public class AppiumFluentWait<T> extends FluentWait<T> {43 public AppiumFluentWait(T input) {44 super(input);45 }46 public AppiumFluentWait<T> withTimeout(long duration, TimeUnit unit) {47 super.withTimeout(duration, unit);48 return this;49 }50 public AppiumFluentWait<T> pollingEvery(long duration, TimeUnit unit) {51 super.pollingEvery(duration, unit);52 return this;53 }54 public AppiumFluentWait<T> ignoring(Class<? extends Throwable>
until
Using AI Code Generation
1public static WebElement fluentWait(final By locator) {2 Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)3 .withTimeout(30, TimeUnit.SECONDS)4 .pollingEvery(5, TimeUnit.SECONDS)5 .ignoring(NoSuchElementException.class);6 WebElement foo = wait.until(new Function<WebDriver, WebElement>() {7 public WebElement apply(WebDriver driver) {8 return driver.findElement(locator);9 }10 });11 return foo;12}13public static WebElement fluentWait(final By locator) {14 Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)15 .withTimeout(30, TimeUnit.SECONDS)16 .pollingEvery(5, TimeUnit.SECONDS)17 .ignoring(NoSuchElementException.class);18 WebElement foo = wait.until(new Function<WebDriver, WebElement>() {19 public WebElement apply(WebDriver driver) {20 return driver.findElement(locator);21 }22 });23 return foo;24}25public static WebElement fluentWait(final By locator) {26 Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)27 .withTimeout(30, TimeUnit.SECONDS)28 .pollingEvery(5, TimeUnit.SECONDS)29 .ignoring(NoSuchElementException.class);30 WebElement foo = wait.until(new Function<WebDriver, WebElement>() {31 public WebElement apply(WebDriver driver) {32 return driver.findElement(locator);33 }34 });35 return foo;36}37public static WebElement fluentWait(final By locator) {38 Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)39 .withTimeout(30, TimeUnit.SECONDS)40 .pollingEvery(5, TimeUnit.SECONDS)41 .ignoring(NoSuchElementException.class);42 WebElement foo = wait.until(new Function<WebDriver, WebElement>() {43 public WebElement apply(WebDriver driver) {44 return driver.findElement(locator);45 }46 });47 return foo;48}49public static WebElement fluentWait(final By locator) {
until
Using AI Code Generation
1public class AppiumFluentWait<T> extends FluentWait<T> {2 public AppiumFluentWait(T input) {3 super(input);4 }5 public AppiumFluentWait<T> withTimeout(long duration, TimeUnit unit) {6 super.withTimeout(duration, unit);7 return this;8 }9 public AppiumFluentWait<T> pollingEvery(long duration, TimeUnit unit) {10 super.pollingEvery(duration, unit);11 return this;12 }13 public AppiumFluentWait<T> ignoring(Class<? extends Throwable> exceptionType) {14 super.ignoring(exceptionType);15 return this;16 }17 public AppiumFluentWait<T> ignoring(Class<? extends Throwable> firstType,18 Class<? extends Throwable> secondType) {19 super.ignoring(firstType, secondType);20 return this;21 }22 public AppiumFluentWait<T> withMessage(String message) {23 super.withMessage(message);24 return this;25 }26 public AppiumFluentWait<T> withMessage(Supplier<String> messageSupplier) {27 super.withMessage(messageSupplier);28 return this;29 }30 public AppiumFluentWait<T> until(Function<? super T, Boolean> isTrue) {31 super.until(isTrue);32 return this;33 }34 public AppiumFluentWait<T> until(Function<? super T, Boolean> isTrue, String message) {35 super.until(isTrue);36 return this;37 }38}39public class AppiumFluentWait<T> extends FluentWait<T> {40 public AppiumFluentWait(T input) {41 super(input);42 }43 public AppiumFluentWait<T> withTimeout(long duration, TimeUnit unit) {44 super.withTimeout(duration, unit);45 return this;46 }47 public AppiumFluentWait<T> pollingEvery(long duration, TimeUnit unit) {48 super.pollingEvery(duration, unit);49 return this;50 }51 public AppiumFluentWait<T> ignoring(Class<? extends Throwable> exceptionType) {52 super.ignoring(exceptionType);53 return this;54 }55 public AppiumFluentWait<T> ignoring(Class<? extends Throwable> firstType,56 Class<? extends Throwable> secondType) {57 super.ignoring(first
until
Using AI Code Generation
1public class AppiumFluentWait<T> extends FluentWait<T> {2 public AppiumFluentWait(T input) {3 super(input);4 }5 public <V> AppiumFluentWait<T> withMessage(String message) {6 super.withMessage(message);7 return this;8 }9 public <V> AppiumFluentWait<T> withTimeout(long duration, TimeUnit unit) {10 super.withTimeout(duration, unit);11 return this;12 }13 public <V> AppiumFluentWait<T> pollingEvery(long duration, TimeUnit unit) {14 super.pollingEvery(duration, unit);15 return this;16 }17 public <V> AppiumFluentWait<T> ignoring(Class<? extends Throwable> exceptionType) {18 super.ignoring(exceptionType);19 return this;20 }21 public <V> AppiumFluentWait<T> ignoring(Class<? extends Throwable> firstType,22 Class<? extends Throwable> secondType) {23 super.ignoring(firstType, secondType);24 return this;25 }26 public <V> AppiumFluentWait<T> ignoring(Class<? extends Throwable> firstType,27 Class<? extends Throwable> secondType, Class<? extends Throwable> thirdType) {28 super.ignoring(firstType, secondType, thirdType);29 return this;30 }31 public <V> AppiumFluentWait<T> ignoring(Class<? extends Throwable> firstType,32 Class<? extends Throwable> fourthType) {33 super.ignoring(firstType, secondType, thirdType, fourthType);34 return this;35 }36 public <V> AppiumFluentWait<T> ignoring(Class<? extends Throwable> firstType,37 Class<? extends Throwable> fourthType, Class<? extends Throwable> fifthType) {38 super.ignoring(firstType, secondType, thirdType, fourthType, fifthType);39 return this;40 }41 public <V> AppiumFluentWait<T> ignoring(Class<? extends Throwable> firstType,42 Class<? extends Throwable> sixthType) {
until
Using AI Code Generation
1public class AppiumFluentWait extends FluentWait<WebDriver> {2 public AppiumFluentWait(WebDriver driver) {3 super(driver);4 }5 public AppiumFluentWait withTimeout(long duration, TimeUnit unit) {6 super.withTimeout(duration, unit);7 return this;8 }9 public AppiumFluentWait pollingEvery(long duration, TimeUnit unit) {10 super.pollingEvery(duration, unit);11 return this;12 }13 public AppiumFluentWait ignoring(Class<? extends Throwable> exceptionType) {14 super.ignoring(exceptionType);15 return this;16 }17 public AppiumFluentWait ignoring(Class<? extends Throwable> firstExceptionType,18 Class<? extends Throwable> secondExceptionType) {19 super.ignoring(firstExceptionType, secondExceptionType);20 return this;21 }22 public <V> AppiumFluentWait until(Function<? super WebDriver, V> isTrue) {23 super.until(isTrue);24 return this;25 }26}27public static AppiumFluentWait wait(WebDriver driver) {28 return new AppiumFluentWait(driver);29}30public static void main(String[] args) {31 wait(driver).withTimeout(10, TimeUnit.SECONDS)32 .pollingEvery(1, TimeUnit.SECONDS)33 .ignoring(NoSuchElementException.class)34 .until(ExpectedConditions.presenceOfElementLocated(By.id("myButton"))).click();35}36public static AppiumFluentWait wait(WebDriver driver) {37 return new AppiumFluentWait(driver);38}39public static void main(String[] args) {40 wait(driver).withTimeout(10, TimeUnit.SECONDS)41 .pollingEvery(1, TimeUnit.SECONDS)42 .ignoring(NoSuchElementException.class)43 .until(ExpectedConditions.presenceOfElementLocated(By.id("myButton"))).click();44}45public static AppiumFluentWait wait(WebDriver driver) {
until
Using AI Code Generation
1public class AppiumFluentWait<T> extends FluentWait<T> {2 private static final Logger log = Logger.getLogger(AppiumFluentWait.class);3 private static final int DEFAULT_SLEEP_TIMEOUT = 500;4 private static final int DEFAULT_TIMEOUT = 30;5 private static final int DEFAULT_POLLING_EVERY = 500;6 public AppiumFluentWait(T input) {7 super(input);8 withTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS);9 pollingEvery(DEFAULT_POLLING_EVERY, TimeUnit.MILLISECONDS);10 ignoring(NoSuchElementException.class);11 }12 public AppiumFluentWait(T input, int timeoutInSeconds) {13 super(input);14 withTimeout(timeoutInSeconds, TimeUnit.SECONDS);15 pollingEvery(DEFAULT_POLLING_EVERY, TimeUnit.MILLISECONDS);16 ignoring(NoSuchElementException.class);17 }18 public AppiumFluentWait(T input, int timeoutInSeconds, int sleepInMillis) {19 super(input);20 withTimeout(timeoutInSeconds, TimeUnit.SECONDS);21 pollingEvery(sleepInMillis, TimeUnit.MILLISECONDS);22 ignoring(NoSuchElementException.class);23 }24 public AppiumFluentWait<T> withTimeout(int timeout, TimeUnit unit) {25 super.withTimeout(timeout, unit);26 return this;27 }28 public AppiumFluentWait<T> pollingEvery(long duration, TimeUnit unit) {29 super.pollingEvery(duration, unit);30 return this;31 }32 public AppiumFluentWait<T> ignoring(Class<? extends Throwable> exceptionType) {33 super.ignoring(exceptionType);34 return this;35 }36 public AppiumFluentWait<T> withMessage(String message) {37 super.withMessage(message);38 return this;39 }40 public AppiumFluentWait<T> withMessage(Supplier<String> messageSupplier) {41 super.withMessage(messageSupplier);42 return this;43 }44 public <V> V until(Function<? super T, V> isTrue) {45 try {46 return super.until(isTrue);47 } catch (TimeoutException e) {48 log.error(e.getMessage());49 throw e;50 }51 }52 public static <T> AppiumFluentWait<T> waitUntil(T input) {53 return new AppiumFluentWait(input);54 }55 public static <T> AppiumFluentWait<T> waitUntil(T input, int timeoutInSeconds) {56 return new AppiumFluentWait(input, timeoutInSeconds);57 }
until
Using AI Code Generation
1public static <T> T waitUntil(WebDriver driver, Function<WebDriver, T> function, Duration timeout) {2 return new FluentWait<>(driver)3 .withTimeout(timeout)4 .pollingEvery(Duration.ofMillis(100))5 .ignoring(NoSuchElementException.class)6 .until(function);7}8public static WebElement waitUntilElementPresent(WebDriver driver, By locator, Duration timeout) {9 return waitUntil(driver, d -> d.findElement(locator), timeout);10}11public static WebElement waitUntilElementVisible(WebDriver driver, By locator, Duration timeout) {12 return waitUntil(driver, d -> d.findElement(locator).isDisplayed() ? d.findElement(locator) : null, timeout);13}14public static WebElement waitUntilElementClickable(WebDriver driver, By locator, Duration timeout) {15 return waitUntil(driver, d -> d.findElement(locator).isEnabled() ? d.findElement(locator) : null, timeout);16}17public static void waitUntilElementNotVisible(WebDriver driver, By locator, Duration timeout) {18 waitUntil(driver, d -> !d.findElement(locator).isDisplayed(), timeout);19}20public static void waitUntilElementNotPresent(WebDriver driver, By locator, Duration timeout) {21 waitUntil(driver, d -> d.findElements(locator).isEmpty(), timeout);22}23public static void waitUntilElementStale(WebDriver driver, WebElement element, Duration timeout) {24 waitUntil(driver, d -> {25 try {26 element.isEnabled();27 return false;28 } catch (StaleElementReferenceException e) {29 return true;30 }31 }, timeout);32}33public static void waitUntilElementNotStale(WebDriver driver, WebElement element, Duration timeout) {34 waitUntil(driver, d -> {35 try {36 element.isEnabled();37 return true;38 } catch (StaleElementReferenceException e) {39 return false;40 }41 }, timeout);42}43public static void waitUntilElementAttributeContains(WebDriver driver, By locator, String attribute, String value, Duration timeout) {44 waitUntil(driver, d -> d.findElement(locator).getAttribute(attribute).contains(value), timeout);45}46public static void waitUntilElementAttributeNotContains(WebDriver driver, By locator, String attribute, String value, Duration timeout) {47 waitUntil(driver, d -> !d.findElement(locator).getAttribute(attribute).contains(value), timeout);48}49public static void waitUntilElementAttributeEquals(WebDriver driver, By locator, String attribute, String value, Duration timeout) {
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!!