问题描述
我使用光谱/电子测试。 Spectron对Webdriver v5的更新更改。 我有用v4方法链编写的UI测试。 我可以将webdriver v4测试方法链重写为webdriver v5(当前光谱)吗?
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
解决方法
旧的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)
})