Protractor sendKeys不';我等不及了?
我正在使用带有Node.js v5.10.1的量角器v3.2.2在Chrome上运行测试 基本上,我观察到的是,我们的一个测试不断失败,因为表单字段没有填写,表单无法提交。失败的步骤实际上如下所示: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(); 或: 它
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
包装)。我编辑了我的问题以使其更清晰。