我正在使用webdriverJS
和Jasmine
来执行网页的端到端测试。我想在某些情况下测试某个元素是否有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
等扩展名?
提前感谢您的回复!
答案 0 :(得分:2)
如果您不希望将jasmine-jquery
或其他第三方软件包引入自定义茉莉花匹配器作为依赖项,则始终可以提取toHaveClass()
matcher implementation和use 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;
})
};
}
};
},
});
});