【问题标题】:Geb: Set text in a input fieldGeb:在输入字段中设置文本
【发布时间】:2016-06-01 04:35:52
【问题描述】:

我为如下的登录页面创建了单独的类:

class LoginPage extends Page{
        static at = { title == "XXX" }
        static content = {
        username(wait:true) { $(By.xpath('//input[@name="mailAddress"]'))}
        password(wait:true) { $(By.xpath('//input[@name="password"]'))}
    }       
}

现在使用以下代码从另一个名为 HomePageLogin 的类访问用户名和密码:

Browser.drive {
    to LoginPage
    at LoginPage    
    report "AtLoginPage"    
    username.value("username")
    password.value("password")  
}

但出现以下错误:

Caught: groovy.lang.MissingPropertyException: No such property: username for     class: MyPackage.HomePageLogin
groovy.lang.MissingPropertyException: No such property: username for class:     MyPackage.HomePageLogin
at MyPackage.HomePageLogin$_run_closure1.doCall(HomePageLogin.groovy:18)
at MyPackage.HomePageLogin$_run_closure1.doCall(HomePageLogin.groovy)
at geb.Browser.drive(Browser.groovy:1061)
at geb.Browser$drive$0.callStatic(Unknown Source)
at geb.Browser.drive(Browser.groovy:1031)
at geb.Browser$drive.call(Unknown Source)
at MyPackage.HomePageLogin.run(HomePageLogin.groovy:12)

如何设置用户名和密码?

我可以使用以下代码在 HomePageLogin 类中设置名称和密码:

Browser.drive {
    to LoginPage
    at LoginPage    
    report "AtLoginPage"    
    $("input",name:"mailAddress").value("ID")
    $("input",name:"password").value("pass")    
}

但我不想要内联脚本。我希望通过相应的类(在这种情况下为 LoginPage)来定义和访问元素。

【问题讨论】:

    标签: exception text input geb


    【解决方案1】:

    如果$("input",name:"") 选择器有效,请尝试将它们放入页面对象中,如下所示:

    class LoginPage extends Page {
        static at = { title == "XXX" }
        static content = {
            username(wait:true) { $("input",name:"mailAddress") }
            password(wait:true) { $("input",name:"password") }
        }       
    }
    

    【讨论】:

    • 如果我需要通过xpath选择复杂的元素,我应该如何使用xpath呢?
    • 你可以使用xpath selectors,但我猜你的xpath在这种情况下是不正确的,出于某种原因。
    • 我在 Firefox 浏览器中使用 Firebug 验证了我的 XPath,一切正常。这就是为什么我很困惑。仍在寻找使用 XPath 而不是 JQuery 选择器的解决方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    • 2015-07-13
    • 2018-10-06
    • 1970-01-01
    • 1970-01-01
    • 2012-11-01
    相关资源
    最近更新 更多