首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在量角器中读取gmail中的动态口令?

如何在量角器中读取gmail中的动态口令?
EN

Stack Overflow用户
提问于 2017-06-09 20:47:39
回答 2查看 849关注 0票数 6

Conf.js

如何从gmail中读取动态口令。我尝试了,但不能,也没有得到任何错误。

EN

回答 2

Stack Overflow用户

发布于 2020-07-20 14:20:59

您可以使用一些邮件侦听器方法来获得更清晰的解决方案,inbucketmail-listener2是e2e测试中用于电子邮件阅读的两种流行解决方案。

我个人推荐inbucket,因为它的实现很简单。您可以将其作为带有simple command mentioned here的docker容器运行,然后使用this Javascript Client使用公开的API。

您也可以使用mail-listener2,它也提供相同的功能,但需要在.conf文件中进行一些配置。

票数 2
EN

Stack Overflow用户

发布于 2017-06-16 05:00:52

这是我想出来的代码。我假设OTP就在你收件箱里的第一封电子邮件里。关闭gmail中允许相似消息分组的设置也很有帮助,因为这可能会导致问题。(请原谅browser.driver.sleep()的使用,这是可以替换的)

代码语言:javascript
复制
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]);
});
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44458259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档