我有几个测试运行正常的chrome,但如果我切换到phantomjs,我有以下错误:
Unable to find element with css selector '.selected-recipients a'
我的测试就是这样:
it('should navigate when clicking edit', function() {
var editLink = element(by.css('.selected-recipients a')).element(by.css('.edit-preview'));
editLink.click();
expect(browser.getCurrentUrl()).toContain('#/recipients');
});
这适用于chrome。问题是幻影。我发现一篇帖子暗示问题可能与窗口大小有关,但这并没有解决我的问题:
https://github.com/angular/protractor/issues/585
我也尝试使用by.id而不是by.css,我也有同样的问题。此文件中的所有其他测试工作正常,有些测试使用by.css,因此对于phantomjs理解此定位器看起来不是问题。看起来该元素根本不在页面中。
有什么想法吗?感谢
答案 0 :(得分:0)
当phantomjs以一种奇怪的方式行动时,我会抛出一个屏幕截图。 可能不是你想要的,但这是一个想法。 :)
page.open("http://www.stackoverflow.com", function()
{
page.render('script_ending.png');
}
另一个想法是尝试将html转储到文件中,以查看该元素是否存在。
或尝试更改DOM,插入元素,然后查看是否可以找到它。
或者尝试只通过类名搜索,看看它失败的地方......也许没有标记a的子元素。