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

Bla*_*gma 5 html testing end-to-end angularjs protractor

我是量角器的新手,想测试链接是否正常工作.我理解尝试获取元素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");
    });
Run Code Online (Sandbox Code Playgroud)

ale*_*cxe 14

想测试链接是否正常工作

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

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

expect(element(by.id('myLink')).getAttribute('href')).toEqual('http://myUrl.com');
Run Code Online (Sandbox Code Playgroud)

要单击链接使用click(),要检查当前URL,请使用getCurrentUrl():

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

请注意,如果在点击后打开了非角度页面,则需要使用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]);
    });
});
Run Code Online (Sandbox Code Playgroud)