不能在页面类内容中使用withFrame

时间:2017-09-02 13:14:48

标签: groovy automated-tests spock geb

我正在使用geb-spock。我试图验证页面类的内容,在页面本身,以便我只是调用变量或函数。使用功能。我做了类似的事情

class BasePage extends Page {
    static content = { 

       verifyheader { withFrame ("myFrame") { assert $("h1").text() == "Header1" } 

    }
  }
}



  ...

then: 
  to BasePage  
and: 
  verifyheader 
  
    

我收到测试失败且withFrame为null的错误。     当我将withFrame放入测试用例

时,这不会出现   
  then: 
    to BasePage
  and: 
   withFrame('myFrame') {...}

这非常有效,但我希望在页面类中使用它。可能吗?我该怎么办呢?或换句话说,我的代码有什么问题

1 个答案:

答案 0 :(得分:4)

是的,内容定义中的class BasePage extends Page { static content = { headerText { withFrame("myFrame") { $("h1").text() } } } } 调用返回null,因为传递给它的块内的最后一个语句是一个始终返回null的断言。您不应该在内容定义中声明,而是在测试中声明:

when:
    to BasePage

then:
    headerText == "Header1"

def function(L,f,g):
    newL = list()
    for i in L:
        if g(f(i)) == True:
            newL.append(i)

    L[:] = newL

    if len(L) == 0:
        return -1
    else:
        return max(L)

def f(i):
    return i + 2
def g(i):
    return i > 5

L = [0, -10, 5, 6, -4]
print(function(L, f,g))
print(L)