有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何避免selenium中的sendKeys方法清除之前填充的文本?

我正在使用Appium和Java测试的安卓应用程序具有标记/提及用户功能。现在我想测试这个特性。我想发送多次提及,并验证提及是否已发送。我正在测试的应用程序类似于slack/messaging应用程序

测试用例步骤

  1. 开放聊天室
  2. 点击发送消息字段以激活键盘
  3. 键入@并等待用户列表显示
  4. 点击用户1
  5. 在用户1被标记/提及后发送一个空格
  6. 再次键入@,等待用户列表显示标记/提及
  7. 点击用户2
  8. 点击信息发送按钮

我使用的是页面对象模型。因此,为了执行上述步骤,我在page类中创建了一个名为SendMultiTention的方法,如下所示:

@Override
public ChatroomPage sendMultiMention(int index0, int index1){
    sendKeyToElement(SENDMESSAGEFIELD, "@");
    List<MobileElement> mentionPersonNamesList = 
    waitAndReturnElementListIfDisplayed(MENTIONPERSONNAME);
    MobileElement mentionPersonNameSelect0 = mentionPersonNamesList.get(index0);
    tapOnElement(mentionPersonNameSelect0);
    sendKeyToElement(SENDMESSAGEFIELD, "@");
    MobileElement mentionPersonNameSelect1 = mentionPersonNamesList.get(index1);
    tapOnElement(mentionPersonNameSelect1);
    tapOnElement(SENDMESSAGEBUTTON);
    return this;
}

因此,上述代码的问题在于,第二个sendKeytoElement会覆盖(即清除)send message文本字段中先前填充的文本

因此,它的作用如下: 类型@->;选择用户1->;清除@user1->;类型@再次->;选择@user2

但我想做的是: 类型@->;选择用户1->;留出空间->;类型@再次->;选择@user2

(即不要从发送消息文本字段中清除@user1)

任何帮助都将不胜感激


共 (0) 个答案