Conf.js
How to read OTP from gmail. I tried but am not able to and also am not getting any error.
答案 0 :(得分:2)
您可以使用一些邮件侦听器方法来获得更清洁的解决方案,inbucket和mail-listener2是在e2e测试中出于电子邮件阅读目的的两种流行解决方案。
我个人建议使用inbucket来实现它的简单性。您可以将其作为带有simple command mentioned here的docker容器运行,然后使用this Javascript Client使用公开的API。
您还可以使用mail-listener2,它也提供相同的功能,但需要在python detect.py --weights ./checkpoints/yolov4-416.tflite --size 416 --model yolov4 --image ./data/kite.jpg --framework tflite
文件中进行一些配置。
答案 1 :(得分:0)
这是我提出的代码。我假设OTP位于收件箱中的第一封电子邮件中。关闭允许类似消息组合在一起的gmail设置也很有帮助,因为这可能会导致问题。 (请原谅使用browser.driver.sleep(),这可以替换)
var tokenKey;
function getKey(a) {
// Open email from *******@gmail.com
// Its a non-angular site, so need to turn off synchronization
browser.ignoreSynchronization = true;
browser.driver.sleep(3000);
// Opens a new tab in which you retrieve OTP
browser.driver.executeScript(function() {
(function(a){
document.body.appendChild(a);
a.setAttribute('href', 'https://gmail.com');
a.dispatchEvent((function(e){
e.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, true, false, false, false, 0, null);
return e;
}(document.createEvent('MouseEvents'))))}(document.createElement('a')));
});
browser.driver.sleep(3000);
// Switch to new tab
browser.getAllWindowHandles().then(function (handles) {
browser.switchTo().window(handles[1]);
if(a){
var username = browser.driver.findElement(by.xpath('//*[@id="identifierId"]'));
username.sendKeys('*********@gmail.com');
browser.driver.findElement(by.id('identifierNext')).click();
}
var EC = protractor.ExpectedConditions;
var firstEmail = element(by.xpath('//*[@id=":3d"]'));
var passwordInput = element(by.xpath('//*[@id="password"]/div[1]/div/div[1]/input'));
if(a){
browser.wait(EC.visibilityOf(passwordInput), 5000);
browser.driver.sleep(1000);
passwordInput.sendKeys('*********');
browser.driver.findElement(by.id('passwordNext')).click();
}
browser.wait(EC.visibilityOf(firstEmail), 5000);
firstEmail.click().then(function () {
browser.driver.sleep(2000);
element.all(by.cssContainingText('div', 'Text Leading up to password:')).count().then(function (results) {
element.all(by.cssContainingText('div', 'Text Leading up to password::')).get(results-1).getText().then(function (token) {
//console.log(token);
tokenKey = token.substring(token.indexOf('-')+1, token.length);
//console.log(tokenKey);
});
});
});
browser.driver.close();
browser.switchTo().window(handles[0]);
});
}