当前位置: 首页 > 面试题库 >

如何获得量角器可靠的结果?

聂鹏云
2023-03-14
问题内容

我正在使用Protractor(v 1.3.1)为Angular 1.2.26应用程序运行E2E测试。

但是有时候,测试还可以,有时候却不行。似乎有时检查是在更新显示之前完成的(或类似“同步”的问题)。我尝试了很多选择:

  • 添加browser.driver.sleep说明,
  • 使用禁用效果 browser.executeScript('$.fx.off = true')
  • 添加browser.waitForAngular()说明

没有成功。

与量角器进行可靠的E2E测试的最佳实践是什么?

JM。


问题答案:

每当我有类似的问题,我使用的是browser.wait()与“预期的条件”(在量角器1.7引入的)。通常有一组内置的期望条件就足够了,但是您可以轻松定义自定义期望条件。

例如,等待 元素可见

var EC = protractor.ExpectedConditions;
var e = element(by.id('xyz'));

browser.wait(EC.visibilityOf(e), 10000);
expect(e.isDisplayed()).toBeTruthy();

一些注意事项:

  • 您可以指定一个自定义错误消息,以防不满足条件并抛出超时错误,请参阅关于等待超时错误的自定义消息:

    browser.wait(EC.visibilityOf(e), 10000, "Element 'xyz' has not become visible");
    
  • 您可以将其设置EC为指向的全局可用变量protractor.ExpectedConditions。将此行添加到onPrepare()您的配置中:

    onPrepare: function () {
    global.EC = protractor.ExpectedConditions;
    

    }



 类似资料:
  • 问题内容: 在angular中,您可以编写过滤器表达式,例如 并会更新表格以仅显示与您在中输入的文字匹配的电话。 如何在变量(例如范围变量)中获取过滤器的相应结果数组,例如当前显示的? 问题答案: 您实际上可以在角度表达式中将新变量分配给作用域。因此,最简单的解决方案就是这样做。现在,filteredPhones是当前作用域中的变量- 请参阅此plnkr示例。

  • 问题内容: 有没有办法在测试运行后将量角器测试结果输出到文件以在命令行之外查看,包括查看详细的故障? 问题答案: 我发现了一种很好的干净方法,可以使用Jasmine报告程序有序地保存测试结果。 如何安装和配置Jasmine Reporter: 安装茉莉花记者: 将以下内容添加到protractor-config.js文件: 创建outputxmldir文件夹(将在此处放置所有测试输出)。 运行量角

  • 问题内容: 首先,MSISDN与电话号码相同。我一直在研究是否有可能从Andoid电话中获取电话号码。 我的研究结果是肯定的。 可以使用TelephonyManager和getLine1Number()。但是,这是不可靠的。 我已经使用Motorola Atrix测试了上述内容,但该操作未检索到有效的电话号码。那么死在水中吧? 好吧,我能够使用TelephonyManager和getVoiceMa

  • 我正在使用一个挂起的意图来启动一个闹钟(使用AlarmManager)。我需要不同的结果代码启动的活动,基于两个按钮中的哪一个放在它的用户点击(Snooze或取消)。我怎么得到这个结果?不幸的是,在关闭活动上启动finish()方法之后,没有在父活动中启动onActivityResult()方法。在Android文档中,它指出

  • 我最近一直在用厚颜无耻为我的角度应用程序编写单元测试,到目前为止一切都很好,但现在我开始编写e2e测试,并想使用量角器,因为这是在现代角度中进行e2e的推荐方法,但我不确定如何将两者集成。 我一直在搜索,找不到任何例子或提示。你可以在这里看到我目前正在我的一个宠物项目中尝试的设置:https://github.com/guerrademitos/MitoPedia

  • 问题内容: 我是Protractor的新手。尽管缺少文档,但我仍然了解基本原理,但找不到解决此问题的方法。 给出以下代码: 我可以看到输入获取了要插入的文本,并且模型以相同的值更新,但是测试失败,原因是description.getText()返回’‘(空字符串)。 有没有其他方法可以在输入中捕获值? 提前致谢。 问题答案: 显然,Selenium WebDriver有一个怪癖。看这里 尝试: 注