在我的一项测试中,我登录并转到下一页。
在下一页中,当我尝试使用.click
单击配置文件元素时,似乎没有发生任何事情。
当我使用.exists
函数时,它返回false。
为什么在更改DOM后无法识别元素?
async func(){
try {
this.chromeless
.goto(this.url)
.click(this.switchToLogIn)
.type(this.email, this.emaillAddressInput)
.type(this.password, this.passwordInput)
.click(this.logInButton )
.click(this.myProfile)
.screenshot()
}
catch(err) {
console.log(err)
}
答案 0 :(得分:0)
当执行链中的先前操作时(除了goto()
以及可能的某些其他方法),DOM树中尚未提供的任何内容都必须等待使用wait()
方法
因此,假设this.myProfile
是要单击的元素的CSS选择器字符串:
// Unchanged code omitted
.click(this.logInButton)
// Since the previous click loads a new page and/or shows new content, we need to wait
.wait(this.myProfile)
.click(this.myProfile)
或者,implicitWait
Chromeless constructor option可以设置为true
,只要这不会对其他任何内容产生负面影响。