clear()清除值,但在使用sendkeys()时保留Selenium Appium中的值

时间:2018-04-12 04:41:08

标签: selenium selenium-webdriver appium

clear方法清除值但保留,当发送键时传递新值,文本框显示selenium Appium中的上一个值+新值。请建议。 版本:Java的客户端4.1.2 Appium Server:v1.7.2 硒:3.0.1

I tried this but it did not work out.

public void clearTextBox(WebElement element,String text) throws Exception
  {
     element.click();
     Thread.sleep(3000);
     element.clear();
     element.sendKeys(text);
  }

获取此enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

您的代码失败的原因(并且您应该将代码包含在原始问题中)是因为您是通过对页面对象元素的两次单独调用来完成的。

每次调用页面对象时,它都会新近查找元素,因此第一次调用它并发出.clear()然后在使用.sendkeys()进行不必要的睡眠后再次调用它。方法。点击也是不必要的。

您应该在页面对象模型中编写一个公共方法来执行sendkeys(),它执行clear(),然后执行sendkeys(),即:

public void setMsisdnValue(String text) {
    Msisdn.clear();
    Msisdn.sendKeys(text);
}

就个人而言,我使用一组辅助方法,以便我可以错误捕获并记录sendkeys之类的东西,但我仍然会在页面对象模型本身内调用它。该帮助程序将执行相同的两个步骤,但也在try / catch中执行并报告任何错误,因此它将简化为:

public void setMsisdnValue(String text) {
    helper.sendKeys(Msisdn, text);
}

希望这有帮助。