APPIUM iOS 13 & 以上。XCUIElementTypeTextField "Value "属性显示为 "OBJ",而不是实际值。

问题描述 投票:0回答:1

问题: 对于 "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

Appium检查员截图

页面源码片段。

                            </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">
ios13 appium-ios xcuitest appium-desktop
1个回答
0
投票

我遇到了类似的问题,iOS 13增加了多余的XCUIElementTypeOther元素,与iOS 12相比,它改变了路径。

为了解决我的用例,我给元素添加了一个唯一标识符,以便直接访问(更快查找),在不可能使用唯一标识符的情况下(例如WebView),我将选择器改为依靠首次匹配。

如:在Appium 1.17.0下。

//XCUIElementTypeTextField[@name="foo"] 对于直接查找单个项目.

//XCUIElementTypeWebView 为查找全部多条匹配。

假设屏幕上只有一个WebView,在iOS 12上,通用查找会产生一个单项,而在iOS 13上会产生3个(相互嵌套)。幸好 capabilities.useFirstMatch 解决它回到一。

© www.soinside.com 2019 - 2024. All rights reserved.