gpt4 book ai didi

android - Android 上的 Appium - SendKeys to EditText 也输入默认文本

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:24:45 24 4
gpt4 key购买 nike

我正在尝试使用 Appium for Android for Wordpress Mobile ( https://github.com/wordpress-mobile/WordPress-Android ) 编写一些自动化测试。

我要做的第一件事是在主登录屏幕中输入用户名,以便能够登录到我的 Wordpress 站点,但我在“用户名”字段中遇到 SendKeys 问题。

以下是元素在 uiautomatorviewer 中的显示方式:

enter image description here

到目前为止,这是我尝试过的:

List<WebElement> textFieldsList = driver.findElementsByClassName("android.widget.EditText");
WebElement login = textFieldsList.get(0);
login.sendKeys("username");

和:

driver.findElementsByClassName("android.widget.EditText").get(0).sendKeys("username");

和:

driver.findElement(By.xpath("//android.widget.EditText[@text='Editing. Username or email. ']")).sendKeys("username");

尝试将“用户名”作为用户名发送的所有 3 个版本,当我运行测试时,在该字段中实际输入的是:“编辑。用户名或电子邮件。用户名”

所以,似乎占位符文本也保留了,然后添加了我的用户名。

请注意,当我使用 appium 发送用户名时添加的文本最初并不存在(参见屏幕截图),但在 UI TreeView 中,它似乎是 EditText 中的文本。当 Appium 运行测试时,它实际上是在添加我自己的用户名之前编写“编辑用户名或电子邮件”文本。

我也尝试过,正如这里另一个问题的答案之一所建议的那样:Appium : Clear a field以下代码,其中 sendKeyEvent(67) 应清除该字段:

List<WebElement> textFieldsList = driver.findElementsByClassName("android.widget.EditText");
WebElement login = textFieldsList.get(0);
login.click();
driver.sendKeyEvent(67);
login.sendKeys("username");

使用 .clear() 会崩溃,我注意到其他人建议尽可能避免使用它。

当然,如果我尝试手动执行此操作,则不会添加占位符文本,我可以通过键入在字段中添加我的用户名。

我也可以使用 driver.sendKeyEvent() 函数并发送一个我的字符,但我想将用户名作为参数发送并能够在字段中键入任何用户名。

因为每次我尝试输入用户名时都会输入额外的文本,为了解决这个问题,我必须先输入“用户名”——在应用程序中,实际输入的文本是“编辑。用户名或电子邮件。用户名” - 然后将光标向左移动到“用户名”一词的前面并开始删除其余部分 - 但这非常慢。这是以这种方式工作的代码:

        String setUsername = "username";
login.click();
login.sendKeys(setUsername);

// hack to delete extra text that gets typed
int stringLength = login.getText().length() - setUsername.length();
for (int i = 0; i < setUsername.length(); i++) {
driver.sendKeyEvent(21); //KEYCODE_DPAD_LEFT
}
for (int i = 0; i < stringLength; i++) {
driver.sendKeyEvent(67); // "KEYCODE_DEL
}

我错过了什么?任何帮助将不胜感激。我试图理解为什么要输入额外的文本。

最佳答案

经过大量搜索,我发现这确实是 Appium v​​ 1.2.2 中的一个错误:

https://discuss.appium.io/t/android-appium-1-2-2-sendkeys-issue-with-hinted-edit-text/309

希望,正如那里所说,它会在版本 1.2.3 中得到修复。

感谢您的帮助!

关于android - Android 上的 Appium - SendKeys to EditText 也输入默认文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25842365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com