Automation 如何等待在量角器的文本框中输入全名

Automation 如何等待在量角器的文本框中输入全名,automation,protractor,automated-tests,ui-automation,Automation,Protractor,Automated Tests,Ui Automation,我正在使用发送键在文本框中输入文本,但它不会等待文本完全输入,并单击“下一步”按钮,因此文本不会完全写入。如何解决这个问题 我使用date函数输入一个随机名称,并在此之前附加一个常量,如图所示。现在,当它通过sendkeys进入时,第一次它像a45一样完全进入,但第二次它像a一样进入,并单击next按钮,因此测试用例失败 如何等量角器让文字写完整 var text = 'a' + date.getHours(); + date.getMinutes(); element.sendKeys(te

我正在使用发送键在文本框中输入文本,但它不会等待文本完全输入,并单击“下一步”按钮,因此文本不会完全写入。如何解决这个问题

我使用date函数输入一个随机名称,并在此之前附加一个常量,如图所示。现在,当它通过sendkeys进入时,第一次它像a45一样完全进入,但第二次它像a一样进入,并单击next按钮,因此测试用例失败

如何等量角器让文字写完整

var text = 'a' + date.getHours(); + date.getMinutes();

element.sendKeys(text);
element.click();
预期结果:a345

实际:a

有人能在这种情况下帮助我,告诉我如何使量角器等待文本完全写入,然后单击“下一步”按钮吗

var date = new Date();
var msg ='a' + date.getHours() + date.getMinutes();

await element.sendKeys(await msg);
await elemnet.click();
尝试使用异步/等待。参考

希望以上输入能帮助您

移除;from date.getHours;在代码中输入所需的内容。

试试这个

var date = new Date();
var hour = date.getHours();
var min = date.getMinutes();
var text = 'a' + hour + min;
然后等待元素被插入

browser.driver.sleep(500);
element.sendKeys(text);
element.click();

你需要在你的行动中加入等待,这样你就可以等待承诺的完成

您还可以在等待发送密钥完成的自定义发送密钥方法的末尾添加检查

await elem.clear();
await elem.sendKeys(keys);
return (await elem.getAttribute('value')) === keys;

将其写入异步/等待。设置browser.sleep只会给测试增加时间,而不知道该值是否正确。您可以改用browser.wait,它将轮询条件为true或超时(在本例中为5秒)。我们要满足的条件是value属性是否等于文本

注意:我更改了元素,因为它指向someButton和someTextBox的全局对象


这里已经有了一些很好的答案,但如果它们不起作用,那么在以前的项目中,有一件事对我有帮助,那就是拆分字符串并逐个字符输入

text.split('').forEach(char => {
  element.sendKey(char);
});

嘿您是刚开始为应用程序编写自动脚本,还是继续使用现有项目?有两种方法可以解决您的问题,解决方案取决于您对我的问题的回答。奇怪的是,留下几行代码可能是正确的,没有任何解释。请包括代码应该做什么的相关描述。@KamilCuk我通常同意,但在这里它是非常清楚的,我不确定我可以添加什么更具描述性。无论如何,我都会更新我的答案。这里的超时将不理想。也许用浏览器。等等
text.split('').forEach(char => {
  element.sendKey(char);
});