javascript – 在量角器/ WebDriverJS中的by.js定位器是什么?

前端之家收集整理的这篇文章主要介绍了javascript – 在量角器/ WebDriverJS中的by.js定位器是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
最近,我注意到一个新的定位器被添加到量角器文档 – by.js()

Locates an elements by evaluating a JavaScript expression,which may be either a function or a string.

我明白这个定位器提供了什么,但是当这个定位器可以使用时,我错过了真实的用例.我什么时候应该喜欢使用by.js而不是其他内置的定位器,如by.css?

解决方法

我觉得用例是使用核心JavaScript函数获取元素,每当css和其他元素定位器不能帮助或者没有可以使用的属性时.情景 –

>如果您使用核心JavaScript函数将其传递给browser.executeScript,那么可以使用by.js替换它.

示例: –

假设如果你必须得到一个出现在两者之间的元素,你可以这样获得 –

var ele = element(by.js(function(){
    var ele1 = document.getElementById('#ele1');
    var ele2 = document.getElementById('#ele2');
    var val = ele1.compareDocumentPosition(ele2);
    if(val === 4) return ele1;
    else return ele2;
}));

>如果你想使用它的css值,如颜色,字体等获取元素.虽然过滤器可以在这种情况下使用,但是by.js也支持它.
>如果元素不能被css或xpath或任何其他定位符访问,例如具有动画或转换的伪元素.

示例: –

假设有元素具有:before和:在转换之后 –

.element:before {
    color: rgb(255,0);
}

要验证元素的颜色,我们可以使用by.js传递一个javascript语句来获取元素 –

var ele = element(by.js(function(){
    return window.getComputedStyle(document.querySelector('.element'),':before');
}));
expect(ele.getCssValue('color')).toEqual('rgb(255,0)');

希望它有帮助.

猜你在找的JavaScript相关文章