gpt4 book ai didi

grails - 在输入完成之前执行Geb单击

转载 作者:行者123 更新时间:2023-12-02 14:32:42 25 4
gpt4 key购买 nike

我正在运行一个简单的Geb测试,如下所示:

class IndexPage extends Page {
//static url = "http://localhost:8080/sampleGrailsApp"
static at = { title == "sampleGrailsApp" }
static content = {
signInButton { $("div", 0, class: "container-fluid").find("button", 0) }
modalFooterSignInButton(wait: true, to: MyPage) { $("footer", 0, class: "modal-footer").find("input", 0, class: "btn-primary") }
modalFooterUsernameInput { $("form").username = it }
modalFooterPasswordInput { $("form").password = it }
signIn { username, password ->
signInButton.click()
waitFor { modalFooterSignInButton.present }
modalFooterUsernameInput username
modalFooterPasswordInput password
modalFooterSignInButton.click()
}
}
}

在我的测试中,该页面的调用方式如下:
def "sigin"() {
given: "User is at index page"
at IndexPage

when: "User signs in"
signIn "username","password"

then: "Goes to MyPage"
at MyPage
}

在某些情况下,modalFooterSignInButton.click()发生在完全输入用户名之前,因此无法通过测试。有人遇到过吗?在点击激活之前,如何等待输入先完成?我正在使用Geb 0.9.2。

提前致谢。

最佳答案

尝试使用isDisplayed()而不是present,因为代码中存在present,但是isDisplayed()表示它出现在UI中。希望以下内容能解决您的问题!

waitFor { modalFooterSignInButton.isDisplayed()}

另外,在紧急情况下请使用 waitFor{},因为我对您的应用程序一无所知。

关于grails - 在输入完成之前执行Geb单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23260712/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com