【发布时间】:2019-12-20 02:10:43
【问题描述】:
我使用 UI 自动化查看器来获取类和 Appium 驱动程序状态的 xpath 选择器(正确): *** Capybara::Ambiguous Exception: Ambiguous match,发现 4 个元素匹配可见 xpath "//android.widget.Button"
元素有不同的text 属性,所以我可以通过这个属性来识别,但是我想如果应用程序有多种语言可用,事情会变得复杂。
下面的文章似乎暗示,因为元素可以共享类名,所以不建议仅按类定位: https://seleniumbycharan.com/2016/08/07/finding-elements-using-locators-in-appium/
一种解决方案是形成一个由这些元素组成的数组并简单地引用一个索引。 另一种是使用 text 属性。 我不喜欢这两种解决方案。
我是否应该建议开发人员分配一些 ID 或只是不同的类名,或者是本地应用程序开发中常见的相同类名链,这无论如何都不是反模式?
【问题讨论】:
-
对相似元素使用不同的类将是一种反模式。一个类定义了元素的行为。这与 HTML/CSS 中主要用于定义表示的类有很大的不同。
-
我需要一个屏幕截图或您尝试单击的元素的某些内容才能真正回答这个问题,但是是的,亨利所说的使用不同的元素类将是一种反模式并通过以下方式定位元素class 通常只是一个坏主意,因为默认情况下有大量元素具有相同的类名。
标签: android android-uiautomator