一旦我将我的上下文切换到webview的DOM,我希望能够按标签搜索这些元素,但我得到的错误是不推荐按标签搜索,而是按类搜索。这不是按标签查找DOM元素的工作。还有办法吗?谢谢!
答案 0 :(得分:0)
根据Appium documentation for migrating to 1.0:
我们删除了以下定位策略:
-name -tag name
...标签名称已被类名替换。所以要通过它找到一个元素 UI类型,为您的客户使用类名定位器策略。
虽然Selenium仍然支持这种类型的查询,但Appium决定不再这样做了。实际上,当与设备交互时,按标签名称搜索效率非常低。
你为什么要那样做?考虑一下,如果您的网页有一些内容,最终会有很多p
,div
,span
标记。您的搜索将返回许多元素,然后您将不得不在列表中找到您感兴趣的那个。如果您的页面很少,那么您可能最终会得到一个您正在寻找的类型的标签,但是为什么不申请一个班并解决问题?
请记住,W3C并未引入HTML属性class
来应用CSS样式。它用于为元素提供更多信息,以及它在DOM中的用途。将类应用于元素时,应该基于元素所持有的角色来执行此操作!因此,按类定位元素肯定会更好。
所以忘记按标签名称搜索。您应该更改策略并将类名应用于混合应用中的标记。如果您不想这样做,那么不要切换到新版本的Appium,但这将使您远离未来的创新!
从基于标记名的元素位置迁移到类名 定向一个是好习惯。这也是你应该改变的原因。
答案 1 :(得分:0)
也许这可以帮助
element.getAttribute("class")