【问题标题】:Get URL after sending form with webdriverio使用 webdriverio 发送表单后获取 URL
【发布时间】:2015-01-10 15:17:06
【问题描述】:

我需要自动化登录过程测试。我正在使用webdriver.io 来做到这一点。

这是我的问题。

我有这个奇怪的登录过程:

  1. 我必须在常规网页中填写表格
  2. 发送表单后,我将被重定向到一个不存在的 URL,但它的一个查询参数中包含访问代码
  3. 然后我将这个访问代码发送到另一个位置以获取访问令牌。

我需要的是一种以编程方式完成第 2 步的方法,因为第 1 步和第 3 步我已经弄清楚了。

我正在尝试这样:

var webdriverio = require('webdriverio');
var options = {
    desiredCapabilities: {
        browserName: 'chrome'
    }
};

webdriverio
    .remote(options)
    .init()
    .url(myUrl)
    .title(function(err, res) {
        console.log('Title was: ' + res.value);
    })
    .setValue('#usuario', user)
    .setValue('#password', password)
    .submitForm('form', function(){
        this.url(function(err, res){
            console.log(res.value);
        });
        this.pause(5000, function(){
            this.end();
        });
    });

但是,似乎在页面加载之前调用了 submitForm 的回调。这样,我的日志显示的 URL 与我之前传递的完全相同。

如果我这样尝试:

.submitForm('form', function(){
    this.pause(5000, function(){
        this.url(function(err, res){
            console.log(res.value);
            this.end();
        });
    });
});

我得到这个奇怪的输出:

数据:文本/html,chromewebdata

我知道在这种情况下暂停并非完美无缺,但我找不到执行此操作的异步方式。

谁能帮忙?

【问题讨论】:

    标签: javascript webdriver webdriver-io


    【解决方案1】:

    提交表单后,您可能不会等待特定状态。表单提交后的预期结果是什么?

    例如,您希望浏览器重定向到带有标题的页面

    <h1 class="success">Your form is submitted successfully</h1>
    

    那么你应该这样做:

    webdriverio
        .remote(options)
        .init()
        .url(myUrl)
        .waitForExist('form')
        .setValue('#usuario', user)
        .setValue('#password', password)
        .submitForm('form')
        .waitForExist('h1.success', 5000)
        .getText('h1', function (err, res) {
            expect(res).to.contain('submitted successfully'); //chai.js
        })
        .call(done);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-01
      • 2021-01-27
      • 1970-01-01
      • 2021-08-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多