【发布时间】:2014-11-29 01:07:57
【问题描述】:
在使用 Protractor 和 PhantomJS 进行 E2E 测试以及做类似的事情时
expect(element(by.repeater('book in library') row(0).column('{{book.name}}')).getText()).toBe('Some Text');
仅在 PhantomJS 中失败,但在 Firefox 或 Chrome 中不失败。
HTML
<div>
<ui tabset>
<li tab ng-repeat="book in library track by id">
<span tab-heading>{{book.name}}</span>
<div ui-view="test"></div>
</li>
</ui>
</div>
Protractor E2E 测试用例:
it('test', function () {
var bookName = element(by.repeater('book in library track by id').row(0).column('{{book.name}}'));
expect(bookName.getText()).toEqual('test');
});
我在 linux 上使用 angularjs 1.2.14, protractor:1.0.0-rc4, phantomjs:1.9.7-14 这个测试用例在 Chrome 和 Firefox 中运行良好,但在 PhantomJS 中失败,我得到的错误是
Error:Expected '' to equal 'test'
当我对行进行计数时工作正常,但尝试获取列值时,我得到的是空字符串。
// works fine:
expect(element.all(by.repeater('book in library track by id')).count()).toEqual(9);
// test fails:
expect(bookName.getText()).toEqual('test');
有没有办法解决这个问题?
【问题讨论】:
-
听起来像 phantomjs 相关的问题吗?您应该 submit it 使用标签
phantomjs problem;)
标签: angularjs phantomjs protractor