spectronの新しい記法 (WebdriverIO v5対応その2)

electron9~10あたりで、UIテストツールであるspectronのバックエンドのwebdriverioが、v4から v5に更新されました。

呼び出しが非同期に変化して、これまでのメソッドチェーンを使う記法が動作しなくなったため、テストの全面書き直しが必要となります。

webdriverio自体に実践的なサンプルが見つからなかったりして難儀しましたが、いろいろ調べて、最終的に参考にしたのはwebdriverioのドキュメントでした。


https://webdriver.io/docs/api.html

```

it('can handle commands using async/await', async function () { const inputElement = await $('#input') let value = await inputElement.getValue() console.log(value) // outputs: some value })

```

 

以前のspectron(WebdriverIO v4のメソッドチェーン)

```

    it("input basic test", function() {
        return this.app.client.waitForVisible('#query-area__query-input__input')
                .waitForEnabled('#query-area__query-input__input')
                .clearElement('#query-area__query-input__input')
                .setValue('#query-area__query-input__input', "Bonan matenon!")
                .getValue('#query-area__query-input__input')
                .then(function(text){assert(text === 'Bonan matenon!')})
    })

```

新しいspectron(WebderiverIO v5のasync/await)

```

    it("input basic test", async function() {

        const inputElement = await this.app.client.$('#query-area__query-input__input');
        let text;
        text = await inputElement.getValue();
        console.log(`before:'${text}'`);
        await inputElement.waitForEnabled()
        await inputElement.clearValue()
        await inputElement.setValue("Bonan matenon!")
        text = await inputElement.getValue();
        console.log(`after:'${text}'`);
        assert(text === 'Bonan matenon!')
        // assert(text === '') // test to test (falure)
    })

``` 

今回書き換えたソース:

https://github.com/MichinariNukazawa/lina_dicto/blob/master/lina_dicto/test/input_ui.js


## Element がないことをテストする処理に時間がかかる?

```

        // このnot existテスト部分で5000msec近くかかるようだが詳細不明
        isExisting = await preprintElement.isExisting();
        assert(! isExisting); // not exist

```


以上です。

0 件のコメント:

コメントを投稿

TIGORA(ティゴラ)のトレッキング シューズ

 TIGORA(ティゴラ)の トレッキング シューズを買いました。 メインの靴がアシックスウォーキングで街歩き用なのですが、これまではこれで高尾山などの軽い山も登っていました。 今回、靴底があまりに摩耗したこともあってアシックスウォーキングを買い替えたのですが、ついでに消耗が激...