问问题
1891 次
2 回答
3
改用 findElements - https://webdriver.io/docs/api/element/ $$.html:
$$(selector)
如果找不到元素,这应该返回一个空数组,但它不应该导致失败。
于 2019-05-13T15:37:47.890 回答
0
好吧,最简单的方法是滥用查询 Selenium 服务器(使用$ / element)是非破坏性操作这一事实。
假设您必须查询 2 个元素,一个已在 DOM 中呈现,另一个没有(或该元素完全不存在)。
let thisLoaded = $('span.coreSpriteFacebookIconInverted');
let thisDidnt = $('span.coreSpriteInstagramIconInverted');
这两个变量将具有以下内容:
thisDidnt = {
sessionId: '7056961e1950b5c54827a51c137cca96',
value: { ELEMENT: '0.8611270215748772-1',
'element-6066-11e4-a52e-4f735466cecf': '0.8611270215748772-1' },
selector: 'span.coreSpriteFacebookIconInverted',
_status: 0
}
thisDidnt = {
type: 'NoSuchElement',
message: 'An element could not be located on the page using the given search parameters.',
state: 'failure',
sessionId: '7056961e1950b5c54827a51c137cca96',
value: null,
selector: 'span.coreSpriteInstagramIconInverted'
}
因此,您现在可以继续进行检查...
if (thisLoaded.value) {
// > if element loaded <
} else {
// > if element didn't load <
}
等我回家再补充...
于 2019-05-15T15:28:56.873 回答