我正在使用Appium为我们的iOS应用程序开发测试算法。为了完全实现这个算法,我需要识别我已经移动到不同的屏幕上或者在执行某些操作后仍然在同一屏幕上。我需要知道,是什么让每个屏幕在Appium方面都与其他屏幕不同/不同?
通过每个屏幕的pageSource,我发现大多数屏幕在window元素中都有xpath属性。我可以使用window元素的xpath值来将屏幕标记为与其他人不同,或者我是否需要在屏幕的pageSources之间进行一些简单的字符串比较以将它们标记为不同?或者还有其他更好的解决方案吗?
答案 0 :(得分:1)
不确定xpath是否是最佳解决方案。通常UIAWindow将保持不变,开发人员可能会在此UIAWindow中使用不同的容器来呈现不同的屏幕。
因此,要验证不同的屏幕,您可能需要确定此容器的内容,并在移动到新屏幕(即新容器)时查看容器的属性是否发生变化
如果您为每个新屏幕应用用户不同的标题,则可以使用此标题查看屏幕是否已更改。示例:在WhatsApp中,您会在顶部看到不同的人。因此,在这种情况下,可以将该人的姓名假定为标题。
如果这不起作用,那么您可以验证一些其他控件,或者说屏幕上所有UIAStaticText的列表。在屏幕更改期间,UIAStaticText的整个列表可能会更改。所以这可以表明屏幕发生了变化。
答案 1 :(得分:0)
对于我们的工作自动化套件,我实施了一系列屏幕检查步骤。每次我们切换屏幕时,我都会对该屏幕上的一个元素执行find_element命令,该命令对于该屏幕是唯一的。这样,如果按钮或选项将我带到一个不正确的新屏幕,我的测试将按预期失败。如果它确实找到了我们预期的元素,那么它将为测试套件增加最少的时间。
如果有的话,Anish Pillai建议使用标题文本。否则,特定选项卡,菜单文本,resource_id或任何与页面唯一的内容就足够了。您需要做的就是find_element调用和失败消息。