@Override public boolean isBrowser() { return super.isBrowser() && !containsIgnoreCase(getContext(), "NATIVE_APP"); } }
originalContext = appiumDriver.getContext(); if (appiumDriver.getContextHandles().size() > 1 && !originalContext.equalsIgnoreCase(NATIVE_APP)) {
/** * Gets current driver context * * @return Name of the current context */ public String getContext() { return this.driver.getContext(); }
private void tapElement(AppiumDriver appiumDriver, WebElement element) { // Locate center of element Point location = element.getLocation(); Dimension size = element.getSize(); int tapX = location.getX() + (size.getWidth() / 2); int tapY = location.getY() + (size.getHeight() / 2); // Execute tap String originalContext = appiumDriver.getContext(); appiumDriver.context("NATIVE_APP"); TouchAction action = new TouchAction(appiumDriver); action.tap(tapX, tapY).perform(); appiumDriver.context(originalContext); }
AppiumDriver appiumDriver = new AppiumDriver(); String originalContext = appiumDriver.getContext(); Point coordinate = element.getLocation(); Dimension loc = element.getSize(); int centerX = loc.getWidth() / 2 + coordinate.getX(); int centerY = loc.getHeight() / 2 + coordinate.getY(); appiumDriver.context("NATIVE_APP"); appiumDriver.tap(1, centerX, centerY, 2); appiumDriver.context(originalContext);
@Override public boolean isBrowser() { return super.isBrowser() && !containsIgnoreCase(getContext(), "NATIVE_APP"); } }
/** * Changes context if Appium driver is in use * * @param webDriver instance */ private void prepareScreenshot(WebDriver webDriver) { try { if (webDriver instanceof ClosingAwareWebDriverWrapper && ((ClosingAwareWebDriverWrapper) webDriver) .getWrappedDriver() instanceof AppiumDriver) { AppiumDriver appiumDriver = (AppiumDriver) ((ClosingAwareWebDriverWrapper) webDriver).getWrappedDriver(); String originalContext = appiumDriver.getContext(); appiumDriver.context(NATIVE_APP_CONTEXT); takeScreenshot(webDriver); appiumDriver.context(originalContext); } else { takeScreenshot(webDriver); } } catch (IOException e) { LOG.error("Can't take screenshot", e); } }
/** * Changes context if Appium driver is in use * * @param webDriver instance */ private void prepareScreenshot(WebDriver webDriver) { try { if (webDriver instanceof ClosingAwareWebDriverWrapper && ((ClosingAwareWebDriverWrapper) webDriver) .getWrappedDriver() instanceof AppiumDriver) { AppiumDriver appiumDriver = (AppiumDriver) ((ClosingAwareWebDriverWrapper) webDriver).getWrappedDriver(); String originalContext = appiumDriver.getContext(); appiumDriver.context(NATIVE_APP_CONTEXT); takeScreenshot(webDriver); appiumDriver.context(originalContext); } else { takeScreenshot(webDriver); } } catch (IOException e) { LOG.error("Can't take screenshot", e); } }
@Test void testWithAndroid(AppiumDriver<WebElement> android) { String context = android.getContext(); android.context("NATIVE_APP"); android.findElement(By.id("com.android.chrome:id/terms_accept")) .click(); android.findElement(By.id("com.android.chrome:id/negative_button")) .click(); android.context(context); android.get("https://bonigarcia.github.io/selenium-jupiter/"); assertTrue(android.getTitle().contains("JUnit 5 extension")); }
@Test void testWithAndroid(AppiumDriver<WebElement> android) { String context = android.getContext(); android.context("NATIVE_APP"); android.findElement(By.id("com.android.chrome:id/terms_accept")) .click(); android.findElement(By.id("com.android.chrome:id/negative_button")) .click(); android.context(context); android.get("https://bonigarcia.github.io/selenium-jupiter/"); assertTrue(android.getTitle().contains("JUnit 5 extension")); }
public static WebElement findElement( AppiumDriver<?> driver, UiElement uiElement ) { // switch the context if needed String context = getElementContext(uiElement); if (context != null && !context.equals(driver.getContext())) { driver.context(context); } // find the element if (uiElement.getElementProperty("xpath") != null) { return driver.findElement(By.xpath(uiElement.getElementProperty("xpath"))); } else if (uiElement.getElementProperty("id") != null) { return driver.findElement(By.id(uiElement.getElementProperty("id"))); } else if (uiElement.getElementProperty("name") != null) { return driver.findElement(By.name(uiElement.getElementProperty("name"))); } else if (uiElement.getElementProperty("text") != null) { return driver.findElement(By.linkText(uiElement.getElementProperty("text"))); } else if (uiElement.getElementProperty("partialText") != null) { return driver.findElement(By.partialLinkText(uiElement.getElementProperty("partialText"))); } return null; }