如何用量角器测试html链接?

时间:2015-03-23 14:08:04

标签: html angularjs testing protractor end-to-end

我是量角器的新手,想测试链接是否正常工作。 我理解尝试获取元素id,但我应该期望链接等于什么?

还有没有人有关于示例量角器测试的任何好文档? 我已经通过这个http://angular.github.io/protractor/#/tutorial这很有帮助,但我需要更多可能的测试示例。

到目前为止我有这个:

it('should redirect to the correct page', function(){
        element(by.id('signmein').click();
        expect(browser.driver.getCurrentUrl()).toEqual("http://localhost:8080/web/tfgm_customer/my-account");
    });

1 个答案:

答案 0 :(得分:14)

  

想测试链接是否正常工作

这有点宽泛 - 它可能意味着链接具有适当的href属性,或者在点击链接后应该打开一个新页面。

要检查href属性,请使用getAttribute()

expect(element(by.id('myLink')).getAttribute('href')).toEqual('http://myUrl.com');

要点击链接使用click(),要查看当前网址,请使用getCurrentUrl()

element(by.id('myLink').click();
expect(browser.getCurrentUrl()).toEqual("http://myUrl.com");

请注意,如果点击后打开了非角度页面,则需要使用ignoreSynchronization标记,请参阅:

如果在新标签页中打开链接,则需要切换到该窗口,检查URL,然后切换回主窗口:

element(by.id('myLink')).click().then(function () {
    browser.getAllWindowHandles().then(function (handles) {
        browser.switchTo().window(handles[handles.length - 1]).then(function () {
            expect(browser.getCurrentUrl()).toEqual("http://myUrl.com");
        });

        // switch back to the main window
        browser.switchTo().window(handles[0]);
    });
});