如何使用webdriverio验证其是否为登录页面

罗希特莫塔

我正在使用Javascript,webdriverio(v2.1.2)从内部站点执行一些数据提取。内部站点启用了SSO,因此,如果我已经在另一个应用程序上进行了身份验证,则无需为此应用程序登录(在企业Intranet应用程序中很常见)。我计划实现以下目标,

  • 创建具有所需功能的客户端
  • 传递所需的URL
  • 为了好玩:打印页面标题
  • 检查页面上是否存在元素。如果是,那么这是一个登录页面。如果没有,那么它不是登录页面

    login = function (username, password) {
    if (!browserClientUtil) {
        throw "Unable to load browserClientUtil.js";
    }
    browserClientUtil
      .createClient()
      .url(_Url)
      .title(function (err, res) {
            console.log('Title is: ' + res.value);
      }) .isExisting('input#login_button.login_button', function (err, isExisting) {
        browserClientUtil.getCurrentClient()
            .setValue('input#USER.input', username)
          .setValue('input#PASSWORD.input', password)
          //.saveScreenshot('ultimatixLoginDetails.png')
          .click('input#login_button.login_button')
          .pause(100);
          handlePostLogin();
    });
    

    };

这是最好的方法吗?我试图在单独的函数中分离用于验证登录页面的代码,但由于Webdriver中的所有事情都是作为回调的一部分发生的,因此它无法正常工作,并且不确定是否以正确的方式进行操作。我如何从回调返回,该回调又将是该函数返回的最终值?

    login = function (username, password) {
    if (!browserClientUtil) {
        throw "Unable to load browserClientUtil.js";
    }
    browserClientUtil
      .createClient()
      .url(_Url)
      .title(function (err, res) {
            console.log('Title is: ' + res.value);
      });
      if(isThisLoginPage()){
            browserClientUtil.getCurrentClient()
            .setValue('input#USER.input', username)
          .setValue('input#PASSWORD.input', password)
          //.saveScreenshot('ultimatixLoginDetails.png')
          .click('input#login_button.login_button')
          .pause(100);
          handlePostLogin();
        }
};

    isThisLoginPage = function() {
    var client = browserClientUtil.getCurrentClient();
    if(!client) {
        throw "Unable to get reference for current client, hence cannot validate if this is login page.";
    }

    client.isExisting('input#login_button.login_button', function (err, isExisting) {
        if(isExisting) {
            return true;
        }
    });
    return false;
};
克里斯蒂安·B

您可以通过创建自己的包装其他命令的命令来创建自己的工作流程。例如,您可以使用自己的命令登录:

browserClientUtil.addCommand("login", function(url, user, pw, cb) {
    this.url(url)
        .setValue('#username', user)
        .setValue('#password', pw)
        .submitForm('#loginForm')
        .call(cb);
});

这使您可以将“复杂的”异步webdriver操作隐藏在一个简单的函数后面。创建功能强大的工具链很容易。最后,您的测试脚本如下所示:

browserClientUtil
    .login("http://example.com/login", "john.doe", "testpass")
    .getTitle(function(err, title) {
        console.log(title);
    })
    // ...

干杯

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用webdriverio验证其是否为登录页面

来自分类Dev

我在ios应用中实现了Google登录。现在,如何验证用户是否已登录,如果没有登录,请使用Swift将其返回登录页面?

来自分类Dev

如何使用Selenium验证jpg是否显示在页面上?

来自分类Dev

如何使用Selenium验证jpg是否显示在页面上?

来自分类Dev

Swift Firebase - 如何验证“PhoneAuthCredential”并保持用户当前使用其当前电子邮件 uid 登录

来自分类Dev

如何使用 webdriverIO、Mocha 和 Chai 验证元素已消失

来自分类Dev

如何使用页面加载失败登录按钮上的Google身份验证用户?

来自分类Dev

如何使用其 ID 为每个 db 项目制作详细信息页面?

来自分类Dev

如果使用angular中的模块,如果路径为空,如何重定向到登录页面

来自分类Dev

如何使用会话为该特定页面设置管理员登录权限?

来自分类Dev

如何确定Firebase用户是否使用Facebook身份验证登录

来自分类Dev

如何验证使用Google登录的用户是否仍然有效?

来自分类Dev

使用laravel身份验证时,如何检查用户是否已在React组件中“登录”?

来自分类Dev

如何确定用户是否仍在使用基于会话的身份验证登录?

来自分类Dev

如何使用登录(用户/密码)文本框在同一页面上登录ADFS WIF联合身份验证和表单身份验证?

来自分类Dev

验证成功后如何防止用户进入登录页面?

来自分类Dev

Drupal模板,验证页面是否为菜单项

来自分类Dev

使用Composite类:客户端如何确定其是否为Composite

来自分类Dev

如何使用CSS修改“登录”页面?

来自分类Dev

如何使用CSS修改“登录”页面?

来自分类Dev

如何使用wget跳过登录页面?

来自分类Dev

如何使用 Jsoup 登录此特定页面?

来自分类Dev

如何使用angularjs添加登录页面

来自分类Dev

如何使用 ListView 构建此登录页面

来自分类Dev

如何验证creativeId是否为null

来自分类Dev

bash +如何验证文件是否为空

来自分类Dev

使用 webdriverio 在 openfin 中下载场景验证

来自分类Dev

如何在量角器导航到第3方页面中进行验证,例如使用您的Google帐户登录?

来自分类Dev

如果已经使用angularjs登录,如何避免显示登录页面?

Related 相关文章

  1. 1

    如何使用webdriverio验证其是否为登录页面

  2. 2

    我在ios应用中实现了Google登录。现在,如何验证用户是否已登录,如果没有登录,请使用Swift将其返回登录页面?

  3. 3

    如何使用Selenium验证jpg是否显示在页面上?

  4. 4

    如何使用Selenium验证jpg是否显示在页面上?

  5. 5

    Swift Firebase - 如何验证“PhoneAuthCredential”并保持用户当前使用其当前电子邮件 uid 登录

  6. 6

    如何使用 webdriverIO、Mocha 和 Chai 验证元素已消失

  7. 7

    如何使用页面加载失败登录按钮上的Google身份验证用户?

  8. 8

    如何使用其 ID 为每个 db 项目制作详细信息页面?

  9. 9

    如果使用angular中的模块,如果路径为空,如何重定向到登录页面

  10. 10

    如何使用会话为该特定页面设置管理员登录权限?

  11. 11

    如何确定Firebase用户是否使用Facebook身份验证登录

  12. 12

    如何验证使用Google登录的用户是否仍然有效?

  13. 13

    使用laravel身份验证时,如何检查用户是否已在React组件中“登录”?

  14. 14

    如何确定用户是否仍在使用基于会话的身份验证登录?

  15. 15

    如何使用登录(用户/密码)文本框在同一页面上登录ADFS WIF联合身份验证和表单身份验证?

  16. 16

    验证成功后如何防止用户进入登录页面?

  17. 17

    Drupal模板,验证页面是否为菜单项

  18. 18

    使用Composite类:客户端如何确定其是否为Composite

  19. 19

    如何使用CSS修改“登录”页面?

  20. 20

    如何使用CSS修改“登录”页面?

  21. 21

    如何使用wget跳过登录页面?

  22. 22

    如何使用 Jsoup 登录此特定页面?

  23. 23

    如何使用angularjs添加登录页面

  24. 24

    如何使用 ListView 构建此登录页面

  25. 25

    如何验证creativeId是否为null

  26. 26

    bash +如何验证文件是否为空

  27. 27

    使用 webdriverio 在 openfin 中下载场景验证

  28. 28

    如何在量角器导航到第3方页面中进行验证,例如使用您的Google帐户登录?

  29. 29

    如果已经使用angularjs登录,如何避免显示登录页面?

热门标签

归档