当前位置: 首页 > 知识库问答 >
问题:

如何在appium 1.6中获取iOS警报文本

梁丘柏
2023-03-14

在升级到XCode 8以及随后的Appium 1.6和IOS 10进行一些Appium测试之前,我曾经能够使用下面的XPath捕获警报中的主文本。

@iOSFindBy(xpath = "//UIAAlert/UIAScrollView/UIAStaticText[2]")
private MobileElement alertText;

然而,有些事情已经改变,这不再有效。我仍然希望能够在警报文本上进行断言,并且不希望使用IOSMobileCapabilityType.AUTO\u disease\u警报功能。

有人找到获取警报信息的方法了吗?

额外的问题:所有这些XPath记录在哪里?我在某个随机论坛上找到了它,但我找不到任何官方留档,也找不到它与XCode中捕获的视图层次结构的关系。

共有1个答案

盛嘉
2023-03-14

回答我自己的问题以防对其他人有帮助。由于appium inspector不使用XCode8,所以打印屏幕布局XML的最佳方法就是执行System.out.println(driver.getPageSource())

然后你可以按照结构做一些像

@iOSFindBy(xpath = "//XCUIElementTypeAlert//XCUIElementTypeStaticText[2]")
private MobileElement alertText;

我从这个问题中得到了答案:使用XCUITEST驱动程序在Appium中通过xpath查找元素

 类似资料:
  • 我尝试了很多事情,我尝试了等待浏览器和不等待浏览器。但每次它就是不想看到警报。 SO的这篇文章似乎正是我的问题:量角器:测试引导警告,但也没有解决我的问题。 这是弹出的html代码: 我使用async/await来确保程序等待,因此下面代码中的所有函数都是异步函数。所以我尝试这样做(也没有catch,并且有一个额外的函数用于超时)。这是页面对象内的一个方法,因此它返回值: (脚本1) 像这样,这个

  • 问题内容: 我正在尝试使用输入发出警报消息,然后从输入中获取值。我发现了很多很好的教程,如何使输入文本字段。但我无法从警报中获取价值。 问题答案: 为Swift 3及更高版本更新: 斯威夫特2.x 假设您要在iOS上执行操作警报:

  • 本文向大家介绍如何通过单击iOS中的警报外部来关闭警报?,包括了如何通过单击iOS中的警报外部来关闭警报?的使用技巧和注意事项,需要的朋友参考一下 理解和实现UIAlert可能会很棘手,特别是如果您不熟悉iOS开发,在这篇文章中,我们将看到当用户在警报框外点击时如何解除警报。 对于此演示,我们将使用UIAlert类,以使用要显示的消息以及可供选择的操作来配置警报和操作表。用所需的动作和样式配置警报

  • 在我的代码中,我创建了一个警报,如下所示: 要取消警报,我执行以下操作: 移除任何具有匹配意图的警报。任何类型的警报,其意图与此警报匹配(由filterEquals(Intent)定义),都将被取消。 我不太确定“匹配意图”的定义是什么。如果我用上面的代码创建多个警报,然后按照显示的方式执行取消,它会取消我创建的所有警报吗?

  • 我使用硒与Appium和我的测试运行在Android和iOS真正的设备。一组测试运行在Android上,而iOS是空闲的。然后测试切换到iOS。两个设备同时连接。 下面是我使用testNG运行的套件的序列: 这里的问题是,当测试切换到android时,iOS设备显示os更新安装弹出窗口。我想在测试切换回iOS之前禁用弹出窗口。我可以从设置中删除更新

  • Appium v1.6.4-beta Xcode 8.2 macOs Sierra 10.12 我想自动保存照片在我的设备。但是第一次我必须给予许可。我使用了"接受警报",但不能接受允许访问照片库的警报。当我执行测试时,它以绿色显示测试通过,但是这个弹出窗口仍然出现在视图中,照片没有保存。 这是我的剧本 还使用了能力, 这是我想允许的 如何接受此警报?我试过使用xpath sa,但没有成功