appium android数字字母切换键,Android上的Appium – SendKeys到EditText也键入默认文本

我正在尝试使用Appium for

Android for WordPress Mobile(

https://github.com/wordpress-mobile/WordPress-Android)编写一些自动化测试.

我要做的第一件事就是在主登录界面输入用户名,以便能够登录我的Wordpress网站,我在“用户名”字段中遇到SendKeys问题.

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

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

List 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树视图中,它似乎是EditText中的文本.当Appium运行测试时,它实际上是在添加我自己的用户名之前编写“编辑.用户名或电子邮件”文本.

我也尝试过,正如其中一个答案中的建议在这里提出的另一个问题:Appium : Clear a field

以下代码,其中sendKeyEvent(67)应该清除该字段:

List textFieldsList = driver.findElementsByClassName("android.widget.EditText");

WebElement login = textFieldsList.get(0);

login.click();

driver.sendKeyEvent(67);

login.sendKeys("username");

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

当然,如果我尝试手动执行此操作,则不会添加占位符文本,我只需键入即可在字段中添加用户名.

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

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

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

}

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值