Javascript样式更改打破了Selenium(GEB)测试

时间:2016-05-13 13:47:11

标签: javascript css selenium geb selenium-firefoxdriver

我目前正在处理一个非常简单的输入表单,其中包含各种输入元素,例如选择,文本和单选按钮。表单在发布后验证,如果未成功验证,表单将再次显示,并突出显示错误的字段。通过添加类has-error并附加带有错误消息的div来实现突出显示。纠正错误 - 比如检查组中的一个单选按钮 - 捕获onChange事件并删除has-error类和div:

if ($(obj).parents('div.has-error')) {
    $(obj).parents('div.has-error').removeClass('has-error');
    $(obj).parents('div.has-error').find('div.help-block').remove();
}

当由"真实"执行时,它完全按照预期工作。用户。然而,当通过硒(GEB)测试执行完全相同的事情时,不检查无线电按钮。有一段时间它有#34;焦点"虚线,好像它是通过元素标记的。enter image description here

因此,测试失败,因为从不检查无线电按钮。如果我删除上面提到的javascript它可以正常工作......同样如果我只删除两个语句中的一个......

测试是用GEB编写的,并使用" form-control-shortcuts"按名称设置字段的值,如:

class FormModule extends Module {
    static base = { $('form#personform') }
    static content = {
        personskoen { "person.koen"().module(RadioButtons) }
    }
}

class OpretPersonPage extends Page {
    static url = "person/opret"
    static at = { title.contains("person.opret.titel") }

    static content = {
        form { module FormModule }
    }
}

这个值在测试中设置如下:

def () {
    given:
        at OpretPersonPage
    when: 
        page.form.persoenskoen = "KVINDE"
    then: 
        page.form.persoenskoen == "KVINDE"
}

我完全陷入困境,没有进一步的想法来测试。我真的希望你们有一些!

我正在使用:

org.seleniumhq.selenium:selenium-firefox-driver:2.52.0
org.seleniumhq.selenium:selenium-support:2.52.0
org.seleniumhq.selenium:selenium-server:2.52.0

0 个答案:

没有答案