如何解决AngularJS,使用angular-captcha进行e2e测试
验证码已加载到中iframe
,您需要在尝试检查之前将其切换为:
browser.switchTo().frame(0);
0
帧索引在哪里。您可以使用框架名称,ID或先前找到的框架元素。
使用recaptcha演示页面的样本测试:
"use strict";
describe("Recaptcha", function () {
beforeEach(function () {
browser.ignoreSynchronization = true;
browser.get("http://vividcortex.github.io/angular-recaptcha/");
});
it("should click the captcha", function () {
browser.switchTo().frame(0).then(function () {
var checkbox = $(".recaptcha-checkbox-checkmark");
// first hover the checkbox
browser.actions().mouseMove(checkbox).perform();
// hardcoded delay
browser.sleep(500);
// okat, now click - TODO: may be we should click with browser.actions().click() and provide the x, y coordinates for where to click
checkbox.click();
});
// expectations
});
});
请注意,在我的情况下,单击后,它会要求选择某些图像,这些图像恰好可以完成不让我的硒自动化机器人通过测试的工作。如果您想实际通过验证码,请按照新的GooglereCAPTCHA如何工作?页以及有关此验证码工作原理的已知信息,我将尝试以下操作:
- 使用您之前使用过的预加载配置文件打开浏览器(至少具有浏览历史记录)
- 在启动测试的浏览器中登录到Google帐户
- 不要单击复选框,
click()
并像普通人一样单击带有偏移量的复选框 - 在浏览器动作之间延迟播放
另一点是,您无需e2e测试验证码的工作原理- 它超出了应用程序的端到端测试范围。寻找一种方法来禁用/关闭测试用户的验证码,或者禁用将针对其运行测试的特定版本的验证码。
解决方法
我实际上正在尝试e2e测试我的简单应用程序,并且在处理angular-
recaptcha(https://github.com/VividCortex/angular-
recaptcha)时遇到一些麻烦。
这是我的测试:
it('should redirect on another page',function() {
browser.get('http://127.0.0.1:3000/#/');
var userName = element(by.model('auth.loginInfos.username'));
userName.sendKeys('consumer1@eco.com');
var password = element(by.model('auth.loginInfos.password'));
password.sendKeys('consumer1');
var recapt = element(by.id('recaptcha'));
recapt.sendKeys();/* How can I put the recaptcha value to true ? */
var btn = element(by.className('btn'));
btn.click();
/**
* Assertions etc...
*/
});
因此,您可以看到我正在尝试填充Recaptcha值,但我不知道如何进行。
你能帮助我吗 ?
注意:我正在使用量角器
谢谢你的帮助
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。