chromeless-单击下一页中的元素不起作用

时间:2018-02-07 07:47:10

标签: chromeless

在我的一项测试中,我登录并转到下一页。 在下一页中,当我尝试使用.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)
    }      

1 个答案:

答案 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,只要这不会对其他任何内容产生负面影响。