'setValue is not a function webdriver io 7
i'm trying to use the function of webdriver io 7 setValue() but I always received the same result.
I post my code.
This is the page object Home
import Page from './page'
class Home extends Page {
get inputUsername () { return $('#user-name') }
async open () {
await super.open('https://www.saucedemo.com/')
}
async setUser () {
this.inputUsername.setValue('fakeName')
}
}
export default new Home()
This is the page object Page
export default class Page {
open (path) {
browser.url(path)
}
}
This is the spec
import Home from '../pageobjects/home'
describe('login form', () => {
it('first login', async () => {
await Home.open()
await Home.setUser()
})
})
And this is the error:
TypeError: this.inputUsername.setValue is not a function
Solution 1:[1]
It happens, because you have to await
element first, and then interact with it (setting value in your case).
So, add await
before getting the element.
// Home page object
async setUser () {
// ? - missed await
return (await this.inputUsername).setValue('fakeName')
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Yevhen Laichenkov |