当前位置: 首页 > 面试题库 >

如何到达appium滚动条的末端?

林祯
2023-03-14
问题内容

我正在尝试自动执行水平栏的滚动,其中水平栏的元素是动态的,并且可以从API中获取。

有没有一种方法可以在appium中使其自动化?


问题答案:

如果页面底部有任何元素或文本,则可以使用UiAutomator2。

如果您使用的是appium,请添加所需的功能’UiAutomator2’。

capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "UiAutomator2");

现在,如果您有元素的ID,请使用以下函数

 public void scrollByID(String Id, int index) {

        try {

             driver.findElement(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().resourceId(\""+Id+"\").instance("+index+"));"));

        } catch (Exception e) {
           e.printStackTrace();
        }
    }

如果您有元素的文本,请使用它。

public void scrollByText(String menuText) {

        try {

             driver.findElement(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textMatches(\"" + menuText + "\").instance(0));")); 
        } catch (Exception e) {
           e.printStackTrace();
        }
    }

如果您不知道botton中的任何元素,则必须使用屏幕尺寸

public void scrollToBottom() {

      int  x = driver.manage().window().getSize().width / 2;
      int start_y = (int) (driver.manage().window().getSize().height * 0.2);
      int end_y = (int) (driver.manage().window().getSize().height * 0.8);
        TouchAction dragNDrop = new TouchAction(driver)
                        .press(PointOption.point(x,start_y)).waitAction(WaitOptions.waitOptions(Duration.ofMillis(500)))
                        .moveTo(PointOption.point(x, end_y))
                        .release();
        dragNDrop.perform();
    }


 类似资料:
  • 我不知道确切的原因,但是我的tableview的滚动条永远不会结束。 这是桌面视图的中间,一切看起来都很好 但当我走到尽头 滚动条没有到达终点... 我想我的约束是可以的(我使用的是autolayout),因为除了滚动条,tableview显示得很好。 我的视图控制器是一个,只包含一个。下面是一个屏幕截图,总结如下: 代码未添加任何约束。你知道我怎么调试这个吗? 提前谢谢 编辑:我试图删除和重新创

  • 对于混合应用程序,我需要滚动到页面末尾。我该怎么办?我可以使用driver.scrollTo()滚动到确切的元素;和driver.ScrollToExact(); 但我想从上到下滚动应用程序。有人能告诉我吗?

  • 在iOS和Android应用程序中,我无法向下滚动到某个元素。由于从Appium 1.6.3更新到1.7.1,从io.Appium更新到6.1.0,因此不推荐使用滑动方法,唯一的解决方案是使用TouchActions。 我试图用TouchActions解决它,但它根本没有滚动,或者滚动方向错误。 到目前为止,我的解决方案是这样的,也许有人能解释我做错了什么: 这不是完整的代码,但我希望你明白。 如

  • 我正在使用Appium测试混合android应用程序。我想滚动到页面底部,然后点击一个链接。谁能告诉我如何滚动到页面底部吗。 非常感谢!

  • 问题内容: 我的内部具有以下样式: 一旦向表中添加了足够的数据,这将显示一个垂直滚动条。但是,添加新数据后,我希望该元素自动滚动到底部。 我可以使用哪些JavaScript代码执行此操作?我愿意在必要时使用JQuery中的选项,但希望使用JavaScript解决方案。 问题答案: 如果您不知道何时将数据添加到,则可以设置一个间隔,每隔几秒钟将元素的scrollTop更新为其scrollHeight

  • 我正在尝试获取一些关于组件的信息,这些组件按标准包含在中。特别是我对阅读水平的感兴趣。我怎么参考?