protractor.findElement()是否意味着滚动到该元素?

时间:2014-02-24 10:45:21

标签: javascript angularjs protractor

我当前的单元测试(量角器+ angularJS项目)失败,错误为UnknownError: unknown error: Element is not clickable at point (525, 1103)。我使用调试器在失败之前停止它,并且我认为它会失败的唯一原因是因为按钮不在视口中(你必须向下滚动)。

失败的行是

homeLink = ptor.findElement(protractor.By.linkText('Home'));
homeLink.click();
expect(ptor.getCurrentUrl()).toBe(homeUrl);

来自https://github.com/angular/protractor/issues/319,他说'...当我使用findElement()时,它会将它们滚动到页面“的”顶部“。评论同意。

在我的测试homeLink = ptor.findElement(protractor.By.linkText('Home'));中没有导致页面滚动。

我认为它应该错了吗?

我该怎么办?

2 个答案:

答案 0 :(得分:9)

首先需要向下滚动(或最大化浏览器,如果这样可以让您看到要点击的按钮),以便按钮在页面上可见:

var scrollIntoView = function () {
    arguments[0].scrollIntoView();
}
browser.executeScript(scrollIntoView, yourwebelement);

答案 1 :(得分:2)

不要忘记获取webElement browser.driver.executeScript(“arguments [0] .scrollIntoView(true);”,ed.getWebElement());