Protractor sendKeys不';我等不及了?

Protractor sendKeys不';我等不及了?,protractor,Protractor,我正在使用带有Node.js v5.10.1的量角器v3.2.2在Chrome上运行测试 基本上,我观察到的是,我们的一个测试不断失败,因为表单字段没有填写,表单无法提交。失败的步骤实际上如下所示: field.sendKeys(value); checkbox.click(); submitButton.click(); 如果我将其更改为: field.clear().sendKeys(value); checkbox.click(); submitButton.click(); 或: 它

我正在使用带有Node.js v5.10.1的量角器v3.2.2在Chrome上运行测试

基本上,我观察到的是,我们的一个测试不断失败,因为表单字段没有填写,表单无法提交。失败的步骤实际上如下所示:

field.sendKeys(value);
checkbox.click();
submitButton.click();
如果我将其更改为:

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

它顺利通过


因此,我怀疑
sendKeys
不会等待页面完全加载,即使文档会建议所有WebDriver操作都在执行之前调用
browser.waitForAngular
。有人对这个问题有什么想法吗?这可能是一个bug吗?

如果您需要使用sendKeys获得有效的结果,则需要在特定时间内休眠浏览器

添加
browser.driver.sleep(500)在代码之前或之后。这将是有效的

看这个

field.sendKeys(value);
browser.driver.sleep(500);

checkbox.click();
browser.driver.sleep(500);

submitButton.click();

如果需要使用sendKeys获得有效的结果,则需要在特定时间内休眠浏览器

添加
browser.driver.sleep(500)在代码之前或之后。这将是有效的

看这个

field.sendKeys(value);
browser.driver.sleep(500);

checkbox.click();
browser.driver.sleep(500);

submitButton.click();

试着写下承诺,让它等待

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

试着写下承诺,让它等待

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

是的,虽然等待有助于解决问题,但这不是一种非常优雅的处理此类情况的方式(如果有的话,
browser.wait
会更好)。然而,我的问题不是找到解决方案(因为我在问题中提到了两个),而是关于
sendKeys
是否能正常工作(根据文档,所有WebDriver操作都默认用
浏览器包装。waitForAngular
)。我编辑了我的问题以使其更清楚。是的,虽然等待有助于解决问题,但这并不是一种非常优雅的处理此类情况的方式(如果有的话,最好是
浏览器。wait
)。然而,我的问题不是找到解决方案(因为我在问题本身中提到了两个),而是关于
sendKeys
是否按应有的方式运行(根据文档,所有WebDriver操作默认使用
browser.waitForAngular
包装)。我编辑了我的问题以使其更清晰。