如何使用 Appium 滚动 Robot Framework 以在 Android 设备上测试应用程序

Posted

技术标签:

【中文标题】如何使用 Appium 滚动 Robot Framework 以在 Android 设备上测试应用程序【英文标题】:How to scroll with Robot Framework using Appium to test an application at Android device 【发布时间】:2019-10-04 19:40:57 【问题描述】:

我正在使用 Robot Framework 和 Appium 为 android 设备进行自动化测试。我正在测试一个未使用 Android 设备网络浏览器进行测试的应用程序。我需要与一个元素交互的一些测试,该元素非常底部并且在不向下滚动的情况下在屏幕上不可见。如果在屏幕上看不到任何元素,则似乎无法单击它。我的问题是,我没有任何好的方法可以滚动到正确的位置,以便我可以 100% 确定该元素在屏幕上可见。

我已经准备好尝试制作一个可以使用 Swipe 的 Robot Framework 关键字来滚动到正确的位置。

: FOR    $counter    IN RANGE    0    5
\    Swipe    15    600    15    200
\    $el    Run Keyword And Return Status     Wait Until Page Contains Element   $lokalizator
\    log    $el
\    Run Keyword If    $el     Exit For Loop
\    $counter    Set Variable    $counter+1

我正在尝试根据需要滚动查看元素($lokalizator)然后停止,但实际发生的是滚动立即停止,因为关键字Wait Until Page Contains Element 实际上看到了元素。但是,无法单击该元素,因为在屏幕上看不到它。

【问题讨论】:

【参考方案1】:

你所拥有的似乎很接近,但我会......

1) 使用“按百分比滑动”而不是滑动。

2) 创建一个关键字,如“如果未找到元素则向下滚动”。检查屏幕中的元素。如果存在,则返回 True。如果没有,请向下滑动百分比并返回 False。

3) 没有 FOR 循环。使用等待关键字成功并调用您的新滚动关键字。

【讨论】:

感谢您的回答。但实际上有一件事,我不明白。我的主要问题是,似乎没有关键字可以告诉我,元素何时在屏幕上实际可见。否则,您的建议实际上非常好,但我不明白它将如何解决原始问题。

以上是关于如何使用 Appium 滚动 Robot Framework 以在 Android 设备上测试应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Robot Framework - 将 Appium 驱动程序传递给 python 脚本

遍历recyclerview的item,使用Appium和Robot Framework选择符合条件的item

appium+robot framework 一个测试用例

如何使用 TouchAction 滚动 Appium 1.7.1

如何使用 appium 的坐标滚动

如何在 Python 中使用 appium 进行滚动