首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角TypeScript前端-2端测试-删除代码中对browser.sleep()调用的需要

角TypeScript前端-2端测试-删除代码中对browser.sleep()调用的需要
EN

Stack Overflow用户
提问于 2018-12-18 15:41:18
回答 1查看 130关注 0票数 0

我正在用TypeScript的角度写界面。我们使用量角器进行端-2端测试.我们的问题是,我们的屏幕有相当多的部分,折叠/展开,或模式,出现和关闭时,按钮被点击。

在这些方面,我们必须在单击之后添加一个browser.sleep(500)来打开它们,以便在测试的下一部分运行之前打开它们。

是最好的方法吗?还是应该在窗口/区段打开/关闭时添加某种类型的回调,只有在被调用时才继续?

代码语言:javascript
复制
if('the confirmation modal opens, I can accept', () => {
  element(by.id('openPopUpButton')).click();
  browser.sleep(500);
  expect(element(by.id('confirmationTextString')).isPresent()).toBeTruthy();
});

我很犹豫是否要添加一些代码,这些代码是专门的,而且完全是为了使测试能够正确地运行。我更希望我们能够以某种方式依赖异步/等待或承诺,但这有可能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-18 16:05:50

browser.wait()是一个更微妙的睡眠版本。使用预期条件,您可以让代码等待到所需的条件。例如(使用您的代码)

代码语言:javascript
复制
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秒。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53836480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档