检查元素是否仅具有Jasmine测试框架的类

时间:2015-09-21 14:44:48

标签: webdriver jasmine

我正在使用webdriverJSJasmine来执行网页的端到端测试。我想在某些情况下测试某个元素是否有class,但我想使用 pure jasmine中的方法来执行此操作。

这是问题所在代码的一部分:

describe('Header bar', function() {
    it('should show/hide elements accoding to the window position', function() {
        this.driver.executeScript('scroll(0, 1000)');
        var elemSearch = this.driver.findElements(webdriver.By.id('animatedElement, animatedElement2, animatedElement3'));
        expect(elemSearch).toContain('appear-2');
    });
})

你知道是否有办法解决这个问题,或者我可以看一些例子,没有使用jasmine-jquery等扩展名?

提前感谢您的回复!

1 个答案:

答案 0 :(得分:2)

如果您不希望将jasmine-jquery或其他第三方软件包引入自定义茉莉花匹配器作为依赖项,则始终可以提取toHaveClass() matcher implementationuse it。请注意,将断言逻辑封装在自定义匹配器中有助于遵循DRY principle并使测试更清晰。

仅供参考,我们目前正在使用toHaveClass实施:

beforeEach(function() {
    jasmine.addMatchers({
        toHaveClass: function() {
            return {
                compare: function(actual, expected) {
                    return {
                        pass: actual.getAttribute("class").then(function(classes) {
                            return classes.split(" ").indexOf(expected) !== -1;
                        })
                    };
                }
            };
        },
    });
});