我正在遍历DOM元素并对它们做一些期望。这是我的工作代码:
browser.elements('css selector', mySelector, function(result) {
let dinamicSelector;
result.value.forEach((res) => {
browser.elementIdAttribute(res.ELEMENT, 'id', function(idValue) {
dinamicSelector = `#${idValue.value}`; // creating a dinamic selector of element through 'id' attribute value.
browser.expect.element(dinamicSelector).to.be.an('a', 'Testing if element is HTML tag: \'a\' (link)');
browser.expect.element(dinamicSelector).text.to.match(/.{1,}/); // contain some text
browser.expect.element(dinamicSelector).to.be.visible;
});
});
});
这段代码很好用,但是在所有元素上都需要id
属性,而且有些冗长。
我想知道是否可以做类似的事情(更简洁的代码,并且不需要为要迭代的所有元素都使用公共属性):
browser.elements('css selector', mySelector, function(result) {
result.value.forEach((res) => {
browser.element('css selector', res.ELEMENT, function(elem) {
browser.expect.element(elem).to.be.an('a');
});
});
});
显然,此代码不起作用,因为res.ELEMENT
的值不是有效的CSS选择器。