首页 > 解决方案 > 我可以将webdriver v4测试方法链重写为v5(当前spectron / electron测试)

问题描述

我使用光谱/电子测试。Spectron 更新更改为 webdriver v5。我有用 v4 方法链编写的 UI 测试。我可以将 webdriver v4 测试方法链重写为 webdriver v5(当前 spectron)吗?

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!')})
})

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

我知道需要替换一些方法和元素 id 选择器。查看我的 spectron 问题网址: https ://github.com/electron-userland/spectron/issues/663

标签: javascriptelectronmocha.jsspectron

解决方案


旧 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 异步/等待)


    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)
    })


推荐阅读