问题标签 [gulp-protractor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 无法使用量角器单击我的 angularjs 应用程序的 Microsoft 帐户的登录按钮
以下用于 microsoft 帐户登录的代码不起作用:
我正在使用 Chrome 64 位浏览器。
javascript - Protractor browser.getCurrentUrl() 不适用于路线更改
我刚刚开始使用量角器对 Angular 单页应用程序进行 e2e 测试。我已经用登录页面开始了测试。这是我为失败案例编写的测试
案例一
上面的代码完美运行。我正在使用 url 测试登录失败,如果 url 没有更改,则将其视为失败。Q1)这是正确的方法吗?我应该检查错误消息吗,我见过这样的例子,所以用 url 测试登录失败。
测试用例 2
这是我收到错误的地方,测试用例检查成功登录。
如果我不使用上面的测试用例也可以完美运行browser.getCurrentUrl()
,当我使用时出现以下错误getCurrentUrl
,这loginPage.submit()
是一次成功的登录尝试并重定向到另一条路线。
等待 Protractor 与页面同步 11 秒后超时。请参阅https://github.com/angular/protractor/blob/master/docs/faq.md。以下任务待处理
我用谷歌搜索了这个问题并找到了很多解决方案,但似乎没有一个有效。
试用解决方案
- 添加
allScriptsTimeout
,getPageTimeout
到量角器配置文件。 - 添加
defaultTimeoutInterval
到配置文件 - 发现以下SO问题link1,link2和这个 github问题,尝试了所有三个,但似乎都没有工作
- 当我用
timeout
错误消息搜索时,我发现这个 SO 问题link1,link2,我尝试了所有不起作用的
基本上所有的解决方案都说要使用wait
, sleep
, waitForAngular
. 我尝试了所有thenable
时尚,因为所有回报都承诺。我发现这个问题是因为使用browser.getCurrentUrl
. 让我知道我在哪里做错了,并想深入了解使用量角器进行 e2e 测试。
我想知道量角器的基础知识,它在路由更改上的工作原理以及量角器如何$http
处理异步用户操作。我应该明确使用承诺等吗?
任何帮助是极大的赞赏。
angularjs - 量角器如何先运行登录测试脚本
我正在尝试使用量角器测试 Angular 单页应用程序。我需要先运行登录脚本。localStorage
只有这样我才能移动到其他路线,因为在路线更改时会检查令牌。
这种测试方法是否正确?在这种情况下,我需要先运行登录脚本。量角器是否允许控制规范文件顺序。
或者我应该通过硬编码令牌来独立运行每个脚本localStorage
(我应该在每次测试之前独立进行登录 api 调用)。
我的登录脚本包含以下内容
因此,在运行之后,Login with correct mail
我将获得 accessToken,它将存储在 localStorage 中,我可以继续测试其他路由。这是正确的方法吗。如果不是,我如何通过端到端登录测试单个应用程序。
在量角器样式指南中,它被称为
使您的测试彼此独立
所以我应该beforeAll, beforeEach
在每次测试之前使用获取访问令牌并存储在 localStorage 中。在这种情况下,请解释我该怎么做。
任何帮助是极大的赞赏。
谢谢。
angular - 错误:ReferenceError:系统未定义
我正在尝试配置 gulp 以启动 Protractor(和 webdriver),但我得到了 "[launcher] Error: ReferenceError: System is not defined" 。我之前将 Karma 设置为识别 System,但我不知道如何为 Protractor 做同样的事情。
这是我的 protractor.conf.js
我的吞咽任务(gulpfile.js):
和量角器相关(package.json)
任何建议都非常感谢!
angularjs - 量角器 - beforeAll 和 afterAll 未定义
我正在将量角器与茉莉花一起使用。量角器版本是3.2.2
,我用命令找到了这个protractor --version
。如何找到量角器使用的茉莉版本。当我阅读升级文档时,我找不到升级 jasmine 的步骤,我发现的只是添加jasmine2
配置文件。
我的配置文件看起来像这样
但我仍然无法使用beforeAll and afterAll
. 我在这里有什么遗漏吗。由于beforeAll and afterAll
未定义,我认为量角器使用的茉莉花版本不是 2x。
任何帮助是极大的赞赏。
谢谢。
angularjs - Angular Protractor - 如何调试变量
考虑以下代码片段
这将返回一个array
转发器项目。那么,如何在控制台中调试此变量。当我这样做时console.log(allRows)
,我在控制台而不是数组中得到以下内容html
。
那么如何调试应该包含所有 html 行的实际变量。我在调试文档中找不到它的选项。
任何帮助是极大的赞赏。
谢谢。
更新
allRows
有以下标记。
我需要在控制台中查看整个内容
angularjs - 量角器中的“$”选择器
我在很多这样的例子中看到过$('.selector')
,我也在使用它。那么这个$变量做了什么。这是我从量角器文档中得到的。
对 $ 的调用可能会被链接起来以查找父元素中的元素。
文档中没有$
单独使用的示例。我们正在使用$
与element
选择器进行链接。
$('.selector')
本身也是一个元素,当我们这样做时,element($('.selector'))
它是一个错误。
那么如何$
在量角器中使用这个选择器。是否具备所有功能JQuery $
。我试过$('.selector').children
which 说children
不是函数。
任何帮助是极大的赞赏。
谢谢!
angularjs - 量角器 - 为测试生成随机数据
我正在一次运行多个测试服。目前我正在对数据进行硬编码以进行测试
例子
此电子邮件字段具有唯一键约束,因此每次运行测试时,我都必须手动更改此值。我需要更改许多此类字段,而手动更改对我来说变得太难了。这在量角器 e2e 测试中通常是如何处理的。?
量角器中是否有任何可靠的第三方库或任何选项来生成用于测试的模拟数据。所以每次它都会随机生成,就像我可以从库中获取姓名、有效的电子邮件字符串、电话号码、其他有意义的字符串等一样。
我正在将量角器与 jasmine 一起用于角度单页应用程序的 e2e 测试。
任何帮助是极大的赞赏。
谢谢!
angularjs - 如何有条件地运行测试规范 - Angular Protractor Jasmine
我正在使用量角器茉莉花进行角度单页应用程序的 e2e 测试。考虑以下代码片段。
在上面的例子中,如果失败,那么下面的Should Open the search modal popup
规范也会失败,因为模态本身没有打开。因此,运行以下规格毫无意义。我可以有条件地运行最后两个规范吗?就像只有当第一个规范通过时,下面的规范才应该运行。Should Open the search modal popup
Should Open the search modal popup
angular - gulp-angular-protractor 与黄瓜的集成
所以,我一直在使用量角器(jasmine 2)编写非常好的 e2e 测试,但现在我的要求发生了变化:我需要从 Jasmine2 切换到 Cucumber 。截至目前,量角器不再直接支持黄瓜。我尝试了自定义框架设置 => 不成功。如前所述,我正在使用 gulp-angular-protractor,它为我提供了一个出色而简单的工作环境(在运行测试时打开/关闭 webdriver,gulp 命令等),我仍然想保留它。
这是我的配置:
包.json
gulpfile.js:
量角器.conf.js
虚拟测试:
世界.js
login.component.feature
login.component.steps.js
问题:当我运行 gulp e2e 时,我得到:
在 C:\Users\Documents\dev\node_modules\gulp-angular-protractor\node_m dules\gulp-protractor\node_modules\protractor\lib\runner.js:337:35 在 _fulfilled (C:\Users\Documents\dev\ node_modules\gulp-angular-protr ctor\node_modules\gulp-protractor\node_modules\protractor\node_modules\q\q.js:7 7:54) 在 self.promiseDispatch.done (C:\Users\Documents\dev\node_modules\ gul -angular-protractor\node_modules\gulp-protractor\node_modules\protractor\node_m dules\q\q.js:826:30) 在 Promise.promise.promiseDispatch (C:\Users\Documents\dev\node_modul s\gulp- angular-protractor\node_modules\gulp-protractor\node_modules\protractor\ ode_modules\q\q.js:759:13) 在 C:\Users\Documents\dev\node_modules\gulp-angular-protractor\node_m dules\gulp-protractor \node_modules\protractor\node_modules\q\q.js:525:49 冲洗 (C:\Users\Documents\dev\node_modules\gulp-angular-protractor node_modules\gulp-protractor\node_modules\protractor\node_modules\q\q.js:108:17
知道我在做什么错吗?