首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Appium-Python在Android应用程序中进行垂直滚动

使用Appium-Python在Android应用程序中进行垂直滚动
EN

Stack Overflow用户
提问于 2015-08-24 17:49:27
回答 3查看 2.9K关注 0票数 1

以下是android应用程序的UI。在这个界面中,可以看到朋友列表。它总共有26个好友。我想滚动UI,想要看到所有的朋友。我想通过Python-Appium来做这件事。我不能滚动它。该怎么做呢?它有resource-id、类名、包名,我有界值,也就是0,161。

EN

回答 3

Stack Overflow用户

发布于 2016-07-02 06:24:20

我也有同样的问题。大多数建议的解决方案都不起作用。总之,我找到了一个解决方案,你可以在下面看到:

代码语言:javascript
复制
    # import touch events
    from appium.webdriver.common.touch_action import TouchAction

    # Find the list element. 
    list = driver.find_element_by_id('com.abc.android.abc:id/common_tab_list')
    # define touch
    action = TouchAction(driver)

    # adjust here to your needs !
    for x in range(0,10):
       action.press(x=750,y=1750).move_to(x=0, y=-75).perform()

主要部分是for循环。基本上它会垂直滚动10次。您可能需要提供不同的x和y坐标。当你在你的设备上启用“指针位置”时,你可以很容易地找到这一点。当你触摸你的屏幕时,它会显示x和y坐标。要启用它,只需转到

  1. settings
  2. developer options
  3. pointer位置(名称可能不同,我的手机上有德语)

然后触摸你的设备底部,在顶部你会看到坐标。这可以添加到"action.press(x=yourX,y=yourY)...“中。

move_to() -既然您想要垂直滚动,就让x保持原样。Y有一个负值。负意味着我们实际上是向上滚动,而不是向下滚动。

执行perfrom()。没什么好说的。

现在我想再加一件东西。除了for循环之外,您还可以执行以下操作:

代码语言:javascript
复制
 action.press(x=750,y=1750).move_to(x=0, y=-200).release().perform()

注意到区别了吗?它是release()。当你添加这个的时候,我发现这个列表可以很流畅地滚动。就像当你向上滑动的时候,列表有一些惯性。

我不是专家,但我的答案至少应该对你有帮助。祝好运

票数 3
EN

Stack Overflow用户

发布于 2016-07-04 11:50:27

可滚动区域应标记为“可滚动”。您可以使用Android UIAutomator和UiScrollable来解决此问题。

代码语言:javascript
复制
user_scroll = 'new UiScrollable(new UiSelector().scrollable(true).' +
     'instance(0)).scrollIntoView(new UiSelector().text("user-text").instance(0))'
user = self.driver.find_element_by_android_uiautomator(user_scroll)

我们要做的就是选择我们关心的滚动区域。使用它,我们滚动到一个特定的元素。在本例中,我们滚动到包含某些特定文本的元素。

如果您想一次滚动到每个用户,那么对于UiSelector ".text“,每次使用不同的实例进行迭代应该很容易。如果您只想滚动到最下面的用户,您可以只搜索那里的用户。

票数 1
EN

Stack Overflow用户

发布于 2019-02-12 19:10:09

我使用TouchAction让它工作的唯一方法是:

代码语言:javascript
复制
ta = TouchAction(driver)
ta.tap(x=100, y=200).wait(100).move_to(x=100, y=80).wait(100).release()
ta.perform()

没有这些等待,Iphone就会变得疯狂。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32179234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档