使用Geb和Spock验证网页上的图像

时间:2017-07-19 17:24:35

标签: automated-tests spock specifications geb

我是使用geb和spock的新手,但是当我只拥有代码的视图来源时,我试图验证网页上显示的图像。任何建议表示赞赏!我将此代码模仿我之前写的链接测试,所以我确定我错过了一些东西。我的页面文件的一个示例是:

// code not included where I have defined the url/etc. Below is content

someImage { $("img", file: "image-logo.png") }

我的规范页面的一个例子是:

def "Valid image"() {
        given: "an image checker"
        to SomePage
        when:
        someImage.hover()
        then:
        verifyAt()

1 个答案:

答案 0 :(得分:0)

您可以验证图像样式设置为displayed,任何具有css属性display: none的内容都无法通过webdriver API进行交互。

我在Geb中对导航器对象使用isDisplayed方法遇到了一些问题,所以我会做以下事情:

在您定义页面内容的位置添加一个用于检查内容的方法可以与之交互(因此设置为显示):

someImage { $("img", file: "image-logo.png") }

Boolean contentDisplayed(Navigator content) {
    content
}

然后您的测试将如下所示:

def "Valid image"() {
    given: "an image checker"
    to SomePage
    when:
    someImage.hover()
    then:
    contentDisplayed(someImage)

值得注意的是,在这里只需访问.hover方法,就css而言,您正在验证图像是displayed。所以你可以简化测试:

def "Valid image"() {
    when: "an image checker"
    to SomePage
    then:
    contentDisplayed(someImage)