grails - 如何在Grab功能测试中切换引导选项卡?

标签 grails functional-testing spock geb

Ні!这是我的第一个问题。

我正在使用grails 3.1.7和Geb内置的Spock。

我试图在同一页面内的两个 bootstrap 选项卡之间切换,以避免ElementNotVisibleException。

这是一些代码(省略了几行):

标记:

<ul class="nav nav-tabs">
    <li class="${registerActive ? '' : 'active'}"><a data-toggle="tab" href="#login">...</a></li>
    <li class="${registerActive ? 'active' : ''}"><a id="registerTab" data-toggle="tab" href="#register">...</a></li>
</ul>

<div class="tab-content">
    <div id="login" class="tab-pane fade ${registerActive ? '' : 'in active'}">
        <g:form ...>
            <div>
                <g:field type="email" name="username" />
            </div>
            ...
        </g:form>
    </div>

    <div id="register" class="tab-pane fade ${registerActive ? 'in active' : ''}">
        <g:form ...>
            <div>
                <g:field type="email" name="email"/>
            </div>
            ...
        </g:form>
    </div>
</div>

测试:
void "register"() {
    when:"user logged in"
    register 'testUser@gmail.com', 'passW0rd!' ...

    then: ...
}

    private register(String email, String password ...) {
    go "/"
    $('#registerTab').click()
    $('input[name=email]').value(email)
    $('input[name=password]').value(password)
    ...
    $('input[name=register]').click()
}

尝试访问“电子邮件”字段会导致ElementNotVisibleException。

我还尝试使用jquery属性添加和删除 Activity 类。

但是没有结果,该表格对于Geb仍然不可见。

我究竟做错了什么?能否请您提出在不同页面内的两个标签之间进行切换的正确方法?

谢谢!

最佳答案

我知道这是过去的方式,但是如果其他任何人需要解决方案,这是一个解决方案。我创建了一个JavaScript函数,例如:

function changeTabs(tabNumber) {
    $('a[href$="container' + tabNumber + '"]').tab('show');
}

然后,在我的Geb测试中,我用以下行更改了选项卡:
js.changeTabs('3')

这与我们正在使用的ChromeDriver配合使用。

关于grails - 如何在Grab功能测试中切换引导选项卡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38174293/

相关文章:

ruby-on-rails - 我可以使用 MoSTLy CSS 更改脚手架页面的外观/感觉吗?

javascript - 为什么我的Grails应用程序无法从Angular脚本中获取对象?

unit-testing - 为什么此模拟 'return'是一个Closure,而不是实际的返回值?

grails - 如何在不重新启动 grails 应用程序的情况下更改 .less 文件?

twitter-bootstrap - 使用超链接发送参数

Symfony2 功能测试 $crawler 不工作

unit-testing - 什么样的单元测试在商业值(value)方面返回最大?

ios - iOS7 中 UIAlertView 的葫芦问题

Grails 2.3.9 - 错误 : ClassNotFoundException: grails.plugin.spock.test.GrailsS​​pecTestType

java - "org.reflections.Reflections - could not get type for name"当对包含 groovy 类的包使用反射时