【问题标题】:Strange issue when clicking buttons in Geb with Spock使用 Spock 在 Geb 中单击按钮时出现奇怪的问题
【发布时间】:2013-03-18 11:19:04
【问题描述】:

问题是我可以单击一个按钮,但是该按钮应该执行的过程然后只是挂起,并且不会发生。例如,单击"post" 按钮时,该按钮应变为黑色,直到帖子加载完毕。相反,它会变黑,然后什么都不会发生。

如果手动执行,这绝不是问题,而且我也从未遇到过 Selenium/Java 的任何问题。此外,错误并非每次都发生。它一次又一次地完美运行!实在想不通为什么会这样。

这是页面定义和测试规范:

页面定义:

static at = { title == "HomePage" }

    static content = {

       msgBox{ $("textarea", 0) }

       postBtn{ $("a", class: "js-btn-post") }

       firstPost{ $("div.msg", 2).find("p").text() }

    }

发布规范:

def "make a post"() {

        given:
        at HomePage

        when:
        msgBox.click()

        and:
        msgBox.value("This is a test post")

        and:
        postBtn.click()

        then:
        waitFor(10) { firstPost == "This is a test post" }
    }

【问题讨论】:

  • 我可能会在单击时遇到类似的事情,但它只是没有进入下一页。在许多情况下,按钮和链接周围都发生了 Javascript 内容,所以我不知道我是否可以责怪测试或应用程序。
  • 您使用的是哪些浏览器驱动程序?你试过其他的吗?
  • 在 Firefox 和 Chrome 中试过,但都不起作用。我还应该提到它有一个 Javascript 按钮。我确实知道 Javascript 可以工作,因为正如我所提到的,它在手动执行或使用 Java/Selenium 时工作正常。
  • 是否有可能在注册点击处理程序之前测试点击了发布按钮?

标签: webdriver spock geb


【解决方案1】:

我认为这是定时器/连接的问题。尝试将waitFor() 添加到您的步骤中。 阅读:link

享受!!!

【讨论】:

  • 感谢您的回复,但不幸的是,这不起作用。我试过等待,但没有多少时间可以让它完成动作。该按钮只是保持黑色,就好像它永远在加载一样。
  • 嗯...我不知道如何帮助你。对不起。
猜你喜欢
  • 2020-05-26
  • 1970-01-01
  • 2019-05-28
  • 2011-11-27
  • 2011-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多