问题标签 [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.

0 投票
1 回答
9259 浏览

angularjs - 使用代理到 ​​https 运行 AngularJS Protractor

尝试运行 Protractor 时,我在命令行中收到以下错误:

> 致命错误:量角器退出代码:1

我需要代理到 https 测试服务器。我该如何做到这一点?我遵循了这个Github issue的建议,但我仍然收到上述错误。这是我的配置文件:

0 投票
2 回答
20173 浏览

javascript - 量角器:获取警报文本?

我正在用 Protractor 测试我的 Angular 应用程序。我浏览了文档,但找不到任何获取警报文本的方法。它本身不是 DOM 中的元素(至少,我无法弄清楚;当出现警报时,Chrome 的检查器将不允许您检查它)。我将如何测试警报是否包含正确的消息?甚至,那个存在?

编辑

这是我的代码。HTML:

JS:

量角器规格:

当我对按钮文本做出这样的断言时:

它通过了。但是,如果我尝试阅读这样的警报:

我收到此错误:

$ protractor spec/e2e/conf.js 在 http://localhost:4444/wd/hub .F使用 selenium 服务器

失败:

1) alert 告诉警报消息 Message: NoSuchAlertError: no alert open (Session info: chrome=30.0.1599.101) (Driver info: chromedriver=2.2,platform=Mac OS X 10.9.0 x86_64) (WARNING: The server did not provide任何堆栈跟踪信息)命令持续时间或超时:3毫秒构建信息:版本:'2.35.0',修订:'c916b9d',时间:'2013-08-12 15:42:01'系统信息:os.name:' Mac OS X', os.arch: 'x86_64', os.version: '10.9', java.version: '1.6.0_65' 会话 ID: edbaa752eb14ad45f7e961903b69a466 驱动程序信息: org.openqa.selenium.chrome.ChromeDriver Capabilities [{platform =MAC,acceptSslCerts=true,javascriptEnabled=true,browserName=chrome,chrome={chromedriverVersion=2.2},rotatable=false,locationContextEnabled=true,版本=30.0.1599.101,cssSelectorsEnabled=true,databaseEnabled=true,handlesAlerts=true,browserConnectionEnabled=false,nativeEvents=true,webStorageEnabled=true,applicationCacheEnabled=false,takeScreenshot=true}]

在 2.125 秒内完成 2 个测试,2 个断言,1 个失败

/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1542 抛出错误;^ NoSuchAlertError:没有打开警报

但是我在页面上测试过,它可以工作,并且测试可以清楚地找到DOM中的按钮。所以要么该click()功能不起作用,要么发生了其他事情?

0 投票
1 回答
10824 浏览

javascript - Angular JS如何使用量角器获取中继器的所有行?

我有一个包含所有用户的表,我想搜索列 {{user.name}} === 'X' 的用户。当我找到正确的行时,我想通过单击该行的最后一列来删除该条目。

我得到一个 TypeError: Object # has no method 'then'

我在这里找到了我的解决方案,但这仍然是旧语法

0 投票
6 回答
78949 浏览

javascript - 如何让量角器按回车键?

我试过这个:

这给出了错误:

0 投票
2 回答
2960 浏览

javascript - 使用量角器获取伪元素的值

我想验证伪元素的文本内容。使用返回的承诺ptor.executeScript("window.getComputedStyle(jQuery('.my-class')[0], ':after').content").then(function(data){ console.log(arguments) // {'0':null} });

我也尝试过在期望中放弃它,但我猜这会因为同样的原因而失败。

由于对此的 CSS 声明无论如何都指向元素的属性之一,我是否应该尝试读取该属性?

0 投票
0 回答
494 浏览

angularjs - 将 jasmine 插件集成到量角器和 lineman 中

如何在 Lineman 项目的 e2e 量角器测试中集成 jasmine 插件(例如 jasmine-jquery)?

0 投票
7 回答
75898 浏览

angularjs - 量角器控制台日志

我想在量角器测试中输出 div 的文本,到目前为止我有:

但这输出

我尝试了“toString()”,结果相同。

有没有办法将文本输出到控制台?

0 投票
6 回答
44215 浏览

javascript - 量角器清除()不工作

我有两个测试:

第一个测试,搜索框,效果很好。第二个测试 status 没有通过,因为在 queryInput 中输入的最后一个值被传递到第二个测试,并且 queryInput.clear() 不起作用。但是,在第二个测试中,如果我调用 queryInput.sendKeys("something"),则会显示“something”。如果我在第二个测试中取出 clear(),我会看到“motorolaso​​mething”。因此,虽然 clear() 似乎在工作,但如果我在第二个测试中只有 clear(),我的测试没有通过,当我运行第二个测试时,即使调用 clear(),我也会看到“motorola”在第二次测试之前。

我想知道为什么当我没有 sendKeys() 之后, clear() 没有在第二次测试中清除。

0 投票
1 回答
1990 浏览

angularjs - 单击 ng-repeat 中的按钮

我试图找到一个按钮元素并在量角器中单击它,但我得到一个错误元素不可见。

当我使用时ptor.findElement(protractor.By.className('dog1')).click(); ,我得到一个错误元素不可见。

我试过了

我打印了行,但我仍然无法单击嵌套元素。

我使用量角器版本 0.12.1 知道如何单击该嵌套元素吗?谢谢

0 投票
1 回答
1688 浏览

angularjs-ng-repeat - 从量角器中继器打印文本

我有以下工作正常的 e2e 测试:

我想要一个检查文本结果的测试,而不是计数/长度,例如:

但使用量角器语法,我尝试了以下但没有去:

但我得到一个 no method getText() 错误。获取“arr”数组中的文本的方法是什么?

这有效: