sendKeys不等待Angular?

时间:2016-04-19 11:20:15

标签: protractor

我正在使用Protractor v3.2.2和Node.js v5.10.1在Chrome上运行测试。

基本上我观察到的是我们的一个测试连续失败,因为表单字段没有被填充而且表单无法提交。失败的步骤实际上是这样的:

field.sendKeys(value);
checkbox.click();
submitButton.click();

如果我将其更改为:

field.clear().sendKeys(value);
checkbox.click();
submitButton.click();

或:

browser.waitForAngular();
field.sendKeys(value);
checkbox.click();
submitButton.click();

它毫无障碍地通过。

所以我怀疑sendKeys不会等待页面完全加载,即使文档会建议所有WebDriver操作在执行前调用browser.waitForAngular。有没有人对这个问题有任何想法?这可能是个错误吗?

2 个答案:

答案 0 :(得分:0)

如果您需要使用sendKeys获得有效结果您需要在特定时间内睡眠浏览器。

在代码之前或之后添加field.sendKeys(value); browser.driver.sleep(500); checkbox.click(); browser.driver.sleep(500); submitButton.click(); 。这将是有效的。

看到这一点。

Collections.sort()

答案 1 :(得分:0)

尝试写下诺言,以便等待。

field.sendKeys(value).then(function(){
   checkbox.click().then(function(){
      submitButton.click().then(function(){
        expect(thisToShow).toBe(shown);
     });
   });
});