量角器定位器只能在phantomjs中找到html元素

时间:2014-04-24 10:44:43

标签: angularjs phantomjs protractor

我有几个测试运行正常的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理解此定位器看起来不是问题。看起来该元素根本不在页面中。

有什么想法吗?感谢

1 个答案:

答案 0 :(得分:0)

当phantomjs以一种奇怪的方式行动时,我会抛出一个屏幕截图。 可能不是你想要的,但这是一个想法。 :)

page.open("http://www.stackoverflow.com", function()
{
    page.render('script_ending.png');
}

另一个想法是尝试将html转储到文件中,以查看该元素是否存在。

或尝试更改DOM,插入元素,然后查看是否可以找到它。

或者尝试只通过类名搜索,看看它失败的地方......也许没有标记a的子元素。