当前位置: 首页 > 知识库问答 >
问题:

使用Geb和Spock对网页图像进行验证

白星腾
2023-03-14

我刚开始使用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个答案

曹臻
2023-03-14

您可以验证图像样式设置为Display,任何具有css属性Display:None的内容都不能通过webdriver API进行交互。

我在Geb中对navigator对象使用IsDisplay方法时遇到了一些问题,因此我将执行以下操作:

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

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)
def "Valid image"() {
    when: "an image checker"
    to SomePage
    then:
    contentDisplayed(someImage)
 类似资料:
  • 我受到了某种测试污染。当我单独运行失败测试时,它们会通过。当我把它们一起运行时,我会得到错误。这些错误与数据库无关。我不能理解错误。例如:页面: 我不明白,因为模块的内容不是必需的。另外,另一个测试的污染会导致这种情况吗?我的测试太多了,无法列出。 我唯一的想法是cookie被设置而不是由我的程序。有一堆cookie,它们具有奇怪的名称,如“ba743b”、“kvcd”、“kn_ai”等,并具有神

  • 全面披露:我对Geb和Spock都很陌生。

  • 我在理解GEB/Spock测试中的一个问题时遇到了一些困难。我们正在使用gradle,并试图并行运行我们的测试。据我所知,gradle中的maxParallelForks属性将在单独的JVM中运行测试类。 我遇到的问题是,当我有6个测试类并将maxParallelForks设置为4个时,当测试开始时,我将得到4个测试类并行运行。太棒了!但最后两个班才是问题所在。假设在前4节课中,2节课在1分钟内完

  • 我正在用Spock、Groovy和Geb编写UI功能测试,实现页面对象模式。在我的事件流中,我从当前页面导航以获得结果,因此,我需要在测试中切换页面对象,但我成功地做到了 下面的测试用例:

  • 我配置了一些测试,根据web应用程序中的登录尝试检查不同的消息。因为消息和输入字段将在第三次登录尝试时更改。 登录是基于向特定电话号码发送密码的两步登录,因此在第一页LoginPage中,用户介绍他们的Id和电话号码,然后将其重定向到第二页ValidationLoginPage,用户在其中介绍接收到的密码。 我想检查一下,在第二个页面中,用户只能引入三个错误的密码,在第四次尝试时,引入密码的输入将

  • 我尝试使用Grails 1.3.7、Geb、Spock和Selenium运行功能测试。下面是我的buildconfig.groovy文件: 测试代码如下所示: