gpt4 book ai didi

angularjs - 需要oauth身份验证的e2e Protractor 测试

转载 作者:行者123 更新时间:2023-12-03 13:27:56 24 4
gpt4 key购买 nike

我有一个Angular应用,它需要通过Google进行身份验证,授予某些范围等,并且我正在尝试为此设置自动e2e测试。我的 Protractor 总体而言对我来说工作得很好,但是当我们进入google身份验证页面,登录并重定向后, Protractor 未能通过测试,因为“等待结果时文档已卸载”。

每次测试之前,有没有一种工具或技术可以用来对开发Google帐户进行身份验证?

如果我可以让框架保持一秒钟,而普通的webdriver驱动登录,并且仅在到达目标页面后才真正激活 Angular 功能,那将是完美的!

最佳答案

关键是使用browser.driver.get而不是browser.get,并使用browser.driver.sleep(someMilliseconds)在使用特定于 Angular 的命令之前,将 Angular 向载荷施加到最终目标位置。

这是我的 Protractor 规格,该规格首先授权给Google,然后在转发器中计数:

it('allows the user to add new slides', function () {
browser.driver.get('http://localhost:3000/editor/?state=%7B"action":"create"%7D');

// at this point my server redirects to google's auth page, so let's log in
var emailInput = browser.driver.findElement(by.id('Email'));
emailInput.sendKeys('user@googleappsdomain.com');

var passwordInput = browser.driver.findElement(by.id('Passwd'));
passwordInput.sendKeys('pa$sWo2d'); //you should not commit this to VCS

var signInButton = browser.driver.findElement(by.id('signIn'));
signInButton.click();

// we're about to authorize some permissions, but the button isn't enabled for a second
browser.driver.sleep(1500);

var submitApproveAccess = browser.driver.findElement(by.id('submit_approve_access'));
submitApproveAccess.click();

// this nap is necessary to let angular load.
browser.driver.sleep(10000);

// at this point the protractor functions have something to hook into and
// will work as normal!
element(by.id('new-slide-dropdown-trigger')).click();
element(by.id('new-text-slide-trigger')).click();

var slideList = element.all(by.repeater('slide in deck.getSlides()'));
slideList.then(function(slideElements) {
expect(slideElements.length).toEqual(1);
});

});

关于angularjs - 需要oauth身份验证的e2e Protractor 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20959748/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com