问题: 对于 "XCUIElementTypeTextField "元素 (在iOS 13 & Above), 该值在Appium Inspector中显示为 "OBJ",而当我试图使用Element.GetAttribute("value")时,我得到的是" "。 请看附件中的截图和页面源代码
我试着获取页面源码,但页面源码中并没有 "XCUIElementTypeTextField "的值。
但当我在12.4.1操作系统的设备上尝试时,它工作得非常好,并且在检查器和页面源中显示该值。
我想知道是否有人面临同样的问题?
配置:* 显示问题的Appium版本(或git修订版): 1.17.0* 运行Appium的桌面操作系统版本: macOS Catalina, 10.15.4* Npm或Yarn包管理器:* 测试中的移动平台版本: iOS* 真实设备或模拟器: Real Device (iPhone X 13.4.1)* Java Client: 7.3.0* Xcode: 11.4* 设备操作系统:13.4.1 13.4.1
页面源码片段。
</XCUIElementTypeStaticText>
</XCUIElementTypeOther>
<XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="16" y="159" width="343" height="75">
**<XCUIElementTypeTextField type="XCUIElementTypeTextField" enabled="true" visible="true" x="16" y="161" width="343" height="53" label="" value="">
</XCUIElementTypeTextField>**
<XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="28" y="159" width="50" height="30" name="Username" label="Username">
<XCUIElementTypeStaticText type="XCUIElementTypeStaticText" enabled="true" visible="true" x="28" y="167" width="50" height="14" name="Username" label="Username" value="Username">
</XCUIElementTypeStaticText>
</XCUIElementTypeOther>
</XCUIElementTypeOther>
<XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="16" y="232" width="343" height="75">
<XCUIElementTypeSecureTextField type="XCUIElementTypeSecureTextField" enabled="true" visible="true" x="16" y="234" width="343" height="53" label="" value=" ">
</XCUIElementTypeSecureTextField>
<XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="28" y="232" width="49" height="30" name="Password" label="Password">
<XCUIElementTypeStaticText type="XCUIElementTypeStaticText" enabled="true" visible="true" x="28" y="240" width="49" height="14" name="Password" label="Password" value="Password">
我遇到了类似的问题,iOS 13增加了多余的XCUIElementTypeOther元素,与iOS 12相比,它改变了路径。
为了解决我的用例,我给元素添加了一个唯一标识符,以便直接访问(更快查找),在不可能使用唯一标识符的情况下(例如WebView),我将选择器改为依靠首次匹配。
如:在Appium 1.17.0下。
//XCUIElementTypeTextField[@name="foo"]
对于直接查找单个项目.
//XCUIElementTypeWebView
为查找全部多条匹配。
假设屏幕上只有一个WebView,在iOS 12上,通用查找会产生一个单项,而在iOS 13上会产生3个(相互嵌套)。幸好 capabilities.useFirstMatch
解决它回到一。