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

时间:2016-03-01 14:56:48

标签: ios selenium automated-tests appium appium-ios

我正在使用Appium 1.4.13,java-client-3.3.0.jar,selenium独立服务器2.48.2和IntelliJ。

我想为UIATextField输入一个值,这是一个数字选择器。我阅读了一个教程并建议:

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

但这没有用:它只是从iOS开启了一个原生的数字选择器

另一个建议是使用setValue for java client 2.2.0:

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

但是setValue方法不再存在了。

所以我有一个像下面这样的解决方法,它可以工作:

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

我的问题:

  • setValue和sendKeyEvents不再可用了?
  • 有更好的方法输入值并确认吗?

由于

这是我在运行

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

enter image description here

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

使用appium 3.3.0 java-client的初始代码应该只是输入稍有不正确。一个小注释,一个数字选择器有一个正则表达式定义为获得一个Integer类型的输入,所以你可以更好地尝试发送一个数字输入。试试这个,应该有所帮助:

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

答案 2 :(得分:0)

我正在开发 Xamrin 应用程序,而 Appium iOS 驱动程序无法使用 @iOSXCUITFindBy 将密钥发送到 UIATextField。虽然在 Android 上,相同的功能运行良好。

我修改了这个功能,首先点击一下,这样我就可以在 webview 中输入用户名和密码了。

public void enterUsername(String userName)

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