Appium iOS 驱动程序无法将密钥发送到 UIATextField

Appium iOS driver can't send keys to UIATextField

我正在使用 Appium 1.4.13,java-client-3.3。0.jar,带有 IntelliJ 的 selenium 独立服务器 2.48.2。

我想给 UIATextField 输入一个值,它是一个数字选择器。我读了一个教程,它建议:

(MobileElement) iosDriver.findElement(By.xpath("//UIATextField")).sendKeys("abcdef");

但这没有用:它只是从 iOS

打开了一个本地数字选择器

另一个建议是对 java 客户端 2.2.0 使用 setValue:

(MobileElement) iosDriver.findElement(By.xpath("//UIATextField")).setValue("abcdef");

但是 setValue 方法已经不存在了。

所以我有如下的解决方法并且有效:

(MobileElement) iosDriver.findElement(By.xpath("//UIATextField")).click;
iosDriver.scrollToExact("abcdef");
//click confirm

我的问题:

谢谢

这是我在 运行

时从 Appium Inspector 得到的
(MobileElement) iosDriver.findElement(By.xpath("//UIATextField")).sendKeys("170");

您使用 appium 3.3.0 java-client 的初始代码应该可以工作,只是您的输入稍有不正确。关于这一点的小提示,数字选择器定义了一个正则表达式以获取整数类型的输入,因此您可以更好地尝试向其发送数字输入。试试这个,会有帮助:

(MobileElement) iosDriver.findElement(By.xpath("//UIATextField")).sendKeys("12"); //sending an integer value

setValue 更改为仅对 IOSElement 有效。相应地转换您的元素,它应该可以工作。 例如:(IOSElement) iosDriver.findElement(By.xpath("//UIATextField")).setValue("abcdef");

来源:https://github.com/appium/java-client/blob/master/src/main/java/io/appium/java_client/ios/IOSElement.java

我正在开发 Xamrin 应用程序和 Appium iOS 驱动程序无法使用 @iOSXCUITFindBy.Though 向 UIATextField 发送密钥 Android 同样的功能工作正常。

我修改了函数以先点击,这样我就可以在网络视图中输入用户名和密码。

public void enterUsername(String userName)

        {
            this.userName.click();
            this.userName.sendKeys(userName);
        }