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

如何使用ios应用程序的不同元素属性创建xpath

卓学智
2023-03-14

我有一个移动的ios应用程序,它可以动态生成元素,我很难点击一些复选框,因为它们没有像web应用程序中常见的复选框那样有id或值,请看下面的图片。(很抱歉我不能展示所有图像,但app正在开发中)

Appium inspector给了我xpath,但我不喜欢它,因为它会根据屏幕上看到的元素而改变,因为我必须向下滚动页面,这取决于设备,有时显示一些复选框有时不显示,因此例如[4]元素会改变。

我想知道是否有一种方法可以通过连接与复选框相邻的文本来点击复选框,这样无论屏幕上显示多少复选框,它都将通过文本进行检查。

因此,在最后,我有一个xpath类似于:(//XCuiElementTypeButton[@name=“Checkbox Unselected”])[和text='the Hydrogic system was operating“]

共有1个答案

支嘉祥
2023-03-14

如果您确信您的结构中每个复选框后面都有一个标签/文本,那么您可以查找该标签,然后查找前面的第一个兄弟。

//XCUIElementTypeStaticText[@name="The hydraulic system was operational"]/preceding-sibling::XCUIEelementTypeButton[1]

然而,看到你的结构,这可能不起作用。看起来复选框的出现顺序与标签相同,因此您可以获得这些标签的相对索引,然后按索引获得复选框。类似于:

//label/../checkbox[count(label/preceding-sibling::LabelType)+1]

//XCUIElementTypeStaticText[@name="The hydraulic system was operational"]/../XCUIEelementTypeButton[count(//XCUIElementTypeStaticText[@name="The hydraulic system was operational"]/preceding-sibling::XCUIElementTypeStaticText)+1]

不管怎么说,这些解决方案都不是最好的。您应该要求开发人员放置适当的属性。

 类似资料:
  • 在我的默认SpringBoot应用程序中,它具有依赖项,调用(带有)返回以下信息 但是,我的机器上有两个驱动器,所以我想查看它们的磁盘空间详细信息。所以我添加了一个配置文件: 现在,我的健康endpoint返回以下数据 (稍后我将考虑如何抑制默认的“diskSpace”条目) 然而,由于我可能想在不同的机器上运行我的应用程序,我想配置磁盘驱动器,以便在我的文件。 还加上 配置在启动期间加载并记录到

  • 我正在学习Spring boot application,并且有使用xml和java配置的Spring应用程序的经验。 我使用的应用程序具有包含UI、服务和DAO的代码基体系结构。所有这些组件都有单独的上下文文件,即。web-applicationcontext.xml或application-servlet-context.xml、service-context.xml和data-context

  • 我需要创建一个工人资源库。然而,每个工人可以有不同的资格(属性)。例如,名为“工人”的资源池应该包括不同类型的工人(例如焊工、工程师等)。)。然后,我有一个抓住块的一些生产过程。我希望抓取块从资源库“工人”中抓取工人,但是条件是这些工人符合这个特定生产过程的要求。例如,我有一个生产过程需要工程师。我想从资源库的工人中抓住一个工程师,但是资源库也应该包括其他工人,而不仅仅是工程师。如何在AnyLog

  • 问题内容: CSS: HTML: 这似乎不适用于Chrome或Mozilla,但确实适用于IE。 问题答案: 这有效: 正如尼古拉在下面的评论中指出的那样,如果备用网址也无效,某些浏览器将再次触发“错误”事件,这将导致无限循环。我们可以通过简单地通过取消“错误”处理程序来避免这种情况。

  • 我如何定义一个对象来读取我的应用程序。mysql-databases by key: 我试着用这个对象: 每个请求获取: