如何在appium中向下滚动页面

时间:2014-11-21 09:35:38

标签: javascript selenium-webdriver appium

我想向下滚动到页面底部并执行一些操作。使用uiautomator我获得了以下内容:

index=2,
resource-id=com.manoramaonline.arogyam:id/pager,class=android.support.v4.view.ViewPager,
scrollable=true.

请帮我这样做。

我正在试用下面的代码。是否有人指出这个问题?

JavascriptExecutor js = (JavascriptExecutor) driver;
RemoteWebElement element =(RemoteWebElement)driver.findElement(By.xpath(
"//android.support.v4.view.ViewPager[@resource-id='com.manoramaonline.arogyam:id/pager']"));     
HashMap<String, String> scrollObject = new HashMap<String, String>();
scrollObject.put("direction", "down");
//i am getting error for this code
scrollObject.put("element", element.getId());
js.executeScript("mobile: scroll", scrollObject);

4 个答案:

答案 0 :(得分:0)

我按照代码开始工作。

    WebElement element = driver.findElement(By.className("android.widget.ScrollView"));
    Actions actions = new Actions(driver);
    actions.moveToElement(element);
    // actions.click();
    actions.perform();

答案 1 :(得分:0)

   JavascriptExecutor js = (JavascriptExecutor) driver;
            HashMap<String, String> scrollObject = new HashMap<String, String>();
            scrollObject.put("direction", "down");
            js.executeScript("mobile: scroll", scrollObject);

此代码将向下滚动,您可以通过将其放入for循环来指定滚动所需的次数。唯一的缺点是它是一个非特定的代码。同样,这段代码来自他们的一个github答案,正如我所提到的,Appium无法为iOS做任何正确的卷轴。至少,我没有找到任何东西。

答案 2 :(得分:0)

在最近的更新appium“mobile:scroll”已弃用,以下代码将起作用,视频将帮助您实施。

滚动到文字:

MobileElement radioGroup = (MobileElement) wd

.findElementByAndroidUIAutomator("new UiScrollable(new UiSelector()"

".resourceId(\"+<listview_id>+\")).scrollIntoView("

"new UiSelector().text(\"+<your_text>+\"));");

radioGroup.click();

此链接可以帮助您:https://www.youtube.com/watch?v=bT3tqaLNn-Y

答案 3 :(得分:-1)

MobileElement radioGroup = (MobileElement) wd.findElementByAndroidUIAutomator("
    new UiScrollable(new UiSelector().resourceId(\"+<listview_id>+\"))
        .scrollIntoView(new UiSelector().text(\"+<your_text>+\"));
");
radioGroup.click();
来自Manidroid

方法非常适合我