我正在用TypeScript的角度写界面。我们使用量角器进行端-2端测试.我们的问题是,我们的屏幕有相当多的部分,折叠/展开,或模式,出现和关闭时,按钮被点击。
在这些方面,我们必须在单击之后添加一个browser.sleep(500)来打开它们,以便在测试的下一部分运行之前打开它们。
是最好的方法吗?还是应该在窗口/区段打开/关闭时添加某种类型的回调,只有在被调用时才继续?
if('the confirmation modal opens, I can accept', () => {
element(by.id('openPopUpButton')).click();
browser.sleep(500);
expect(element(by.id('confirmationTextString')).isPresent()).toBeTruthy();
});我很犹豫是否要添加一些代码,这些代码是专门的,而且完全是为了使测试能够正确地运行。我更希望我们能够以某种方式依赖异步/等待或承诺,但这有可能吗?
发布于 2018-12-18 16:05:50
browser.wait()是一个更微妙的睡眠版本。使用预期条件,您可以让代码等待到所需的条件。例如(使用您的代码)
let EC = protractor.ExpectedConditions;
element(by.id('openPopUpButton')).click();
let confirm = element(by.id('confirmationTextString'));
browser.wait(EC.presenceOf(confirm),15000); //Timeout of 15 seconds
expect(confirm.getText()).toBe('Random Text') //Checked for text since wait basically checks for isPresent如果元素需要1秒才能出现,那么它只需要等待1秒,但是如果您是在一个缓慢的浏览器上,并且加载它需要10秒,那么您的代码将等待10秒。
https://stackoverflow.com/questions/53836480
复制相似问题