适用于android

时间:2016-01-18 05:44:35

标签: android testing webview automated-tests appium

我使用appium(java)自动化Android应用程序。
对于在本机组件上滚动,我使用scrollTo()scrollToExact()方法。
但是对于webView内部的app;这些方法不起作用。

更新: 我也试过这两种方法:

public static void scrollNavigation(AppiumDriver<MobileElement> wd, String widID, String target, String direction)
    {
        JavascriptExecutor js = (JavascriptExecutor) wd;
        HashMap<String, String> swipeObject = new HashMap<String, String>();
        swipeObject.put("text", target);
        swipeObject.put("direction", direction);
        swipeObject.put("element", widID);
        js.executeScript("mobile: scrollTo", swipeObject);
        wait(200);
    }

    public static void swipeUpElement(AppiumDriver<MobileElement> driver, MobileElement element, int duration)
    {
        int topY = element.getLocation().getY();
        int bottomY = topY + element.getSize().getHeight();
        int centerX = element.getLocation().getX() + (element.getSize().getWidth()/2);
        driver.swipe(centerX, bottomY, centerX, topY, duration);
    }

但是在这两个方面我需要元素 - 但在页面上我找不到除webview之外的任何元素。
我正在使用UiAutomator来捕获ID。
任何建议/链接/解决方法都会有所帮助

2 个答案:

答案 0 :(得分:1)

在网络视图中,ELements不会被唯一移位。你需要开发数学逻辑来获得屏幕尺寸并根据它们滚动,使用下面的代码,

if ([mySwitch isOn]) {
    myTextView.editable = NO;
    [myTextView resignFirstResponder];
} else {
    myTextView.editable = YES;
    [myTextView becomeFirstResponder];
}

答案 1 :(得分:0)

在滚动之前尝试切换到本机上下文driver.context("NATIVE_APP");。 如果它不起作用,请尝试JavascriptExecutor,如下面的示例

MobileElement element = driver.findElement(By.xpath("element-xpath"));
JavascriptExecutor js = (JavascriptExecutor) driver;
HashMap scrollObject = new HashMap();
scrollObject.put("direction", "down");
scrollObject.put("element", element);
js.executeScript("mobile: scroll", scrollObject);