热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AngularJS之外的量角器的可用性

AngularJS

尽管Protractor旨在为Angular应用程序编写端到端测试代码,但仍可用于测试非Angular应用程序。

有两种常见的解决方案可以实现此目的:

browser.driver.find(By.id('test'));

为了方便起见,您可以将其导出到全局名称空间并通过别名进行访问。

onPrepare: function () {
global.drv = browser.driver;
}

如您所述,browser.ignoreSynchrOnization=
true
可以禁用默认的量角器等待行为。当您的测试代码不专用于非Angular应用程序时,您采用的解决方案(在browser.get()之前执行browser.ignoreSynchronization
=
true)可能会导致错误。browser.ignoreSynchronization是全局作用域设置,这意味着一旦更改其值,此标志将影响整个测试套件。因此,除非在每个Angular测试中相应地更新标志,否则您的Angular测试将获得一些错误。

尝试这种优雅而灵活的方式。

ignoreSynchronization在config.js中定义标志设置器功能

OnPrepare= function () {
global.isAngularApp = function (flag) {
return browser.ignoreSynchrOnization= flag;
}
}

然后您可以在测试代码中确定标志的值

beforeEach(function() {
isAngularApp(false); //for non-Angular site
});

对于非角度应用程序,您现在需要自己维护同步。您可以采用一种对用户更直观的方法来实现,即您现在等待元素出现/消失/具有一个值/没有任何值/等等。用户将看到并作出反应的所有事物。您可以通过Selenium的隐式或显式等待以及适当的ExpectedConditions类来完成此操作。这些是Selenium
Docs的详细信息。

希望对您有帮助。





推荐阅读
author-avatar
xpf
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有