SendKeys()正在添加发送的默认值(issue)+ datetime值

时间:2016-05-27 19:28:47

标签: jasmine protractor

基本上问题发生在我发送某个值的时刻,这个值以某种方式附加到默认值'01 / 01/2000'。我已经尝试了不同的方法来做到这一点没有成功,我已经在其他脚本中使用了这些确切的行并且它工作但我不知道为什么这不起作用。请在下面找到我使用的最后一个代码,然后显示问题的图片。

  var targetStartDate = browser.driver.findElement(by.id('StartDate'));
   targetStartDate.clear().then(function () {           
       targetStartDate.sendKeys('09/01/2016');           
     }) 

example of the issue

提前感谢您的回复。

2 个答案:

答案 0 :(得分:1)

您可以在发送密钥前尝试发出clear()来电:

targetStartDate.clear();
targetStartDate.sendKeys('09/01/2016'); 

另一个选项是在发送密钥之前选择输入中的所有文本:

// protractor.Key.COMMAND on Mac
targetStartDate.sendKeys(protractor.Key.chord(protractor.Key.CONTROL, "a"));
targetStartDate.sendKeys('09/01/2016');

答案 1 :(得分:0)

之前我遇到过同样的问题。在字段中有一个输入掩码格式化输入。为了解决这个问题,您必须将测试编写为实际用户,并记住格式:

var targetStartDate = browser.driver.findElement(by.id('StartDate'));
// Remove the forward slashes because the input field takes care of that.
var inputDate = '09012016';

targetStartDate.clear();
// Loop through each character of the string and send it to the input
// field followed by a delay of 250 milliseconds to give the field
// enough time to format the input as you keep sending keys.
for (var i = 0; i < inputDate.length; i++) {
  targetStartDate.sendKeys(inputDate[i]);
  browser.driver.sleep(250);
}

根据网站的延迟和性能,您可能需要减少250毫秒的延迟,或者能够减少延迟。

希望这有帮助!