サインイン プロセス テストを自動化する必要があります。そのためにwebdriver.ioを使用しています。
これが私の問題です。
私はこの奇妙なサインインプロセスを持っています:
- 通常の Web ページでフォームに入力する必要があります
- フォームを送信した後、存在しないURL にリダイレクトされますが、クエリ パラメータの 1 つにアクセス コードが含まれています。
- 次に、このアクセス コードを別の場所に送信して、アクセス トークンを取得します。
必要なのは、プログラムでステップ 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();
});
});
});
私はこの奇妙な出力を得ます:
データ:text/html,chromewebdata
このコンテキストでは一時停止が完璧ではないことはわかっていますが、これを行う非同期の方法が見つかりませんでした。
誰でも助けることができますか?