Я пытаюсь получить один случайный узел из Xpath с несколькими узлами. количество узлов является переменным и меняется каждую неделю. Мне нужно 1 из следующих 2 решений для работы:
- возвращает число назад числа узлов, соответствующих этому Xpath. таким образом, я могу использовать его, чтобы рандомизировать его
- другой вариант, который даст тот же результат: дайте мне 1 из 25 случайных путей, например.
Я пытался решить эту проблему по-разному. но никто не работал до сих пор.
Я наткнулся на это решение:
productCounter(){
let c = document.evaluate('count(//*[@itemtype]/*[@data-order-bacu])', document, null, XPathResult.ANY_TYPE, null);
console.log(c.numberValue);
}
Он должен дать мне количество узлов в Xpath, которое я затем мог бы использовать, чтобы рандомизировать правильное количество узлов. но так как я использую webdriverIO, это выдаст ошибку:
документ не определен
Так что я попробовал что-то другое и использовал функцию «browser.elements» webdriverIO. но не уверен, поможет ли это.
productCounter(){
let a = browser.selectByIndex("//*[@itemtype]/*[@data-order-bacu]");
console.log (a);
}
Console.log вернет мне что-то вроде, см. Ниже. Можно ли это как-то использовать для получения числа узлов.
{ sessionId: 'a45061ba0d9dfcf0b241877bb2951cc8',
value:
[ { ELEMENT: '0.5928327282420562-1',
'element-6066-11e4-a52e-4f735466cecf': '0.5928327282420562-1',
selector: '//*[@itemtype]/*[@data-order-bacu]',
value: [Object],
index: 0 },
{ ELEMENT: '0.5928327282420562-2',
'element-6066-11e4-a52e-4f735466cecf': '0.5928327282420562-2',
selector: '//*[@itemtype]/*[@data-order-bacu]',
value: [Object],
index: 1 },
{ ELEMENT: '0.5928327282420562-3',
'element-6066-11e4-a52e-4f735466cecf': '0.5928327282420562-3',
selector: '//*[@itemtype]/*[@data-order-bacu]',
value: [Object],
index: 2 },
{ ELEMENT: '0.5928327282420562-4',
'element-6066-11e4-a52e-4f735466cecf': '0.5928327282420562-4',
selector: '//*[@itemtype]/*[@data-order-bacu]',
value: [Object],
index: 3 },
{ ELEMENT: '0.5928327282420562-5',
'element-6066-11e4-a52e-4f735466cecf': '0.5928327282420562-5',
selector: '//*[@itemtype]/*[@data-order-bacu]',
value: [Object],
index: 4 },
{ ELEMENT: '0.5928327282420562-6',
'element-6066-11e4-a52e-4f735466cecf': '0.5928327282420562-6',
selector: '//*[@itemtype]/*[@data-order-bacu]',
value: [Object],
index: 5 },
{ ELEMENT: '0.5928327282420562-7',
'element-6066-11e4-a52e-4f735466cecf': '0.5928327282420562-7',
selector: '//*[@itemtype]/*[@data-order-bacu]',
value: [Object],
index: 6 },
{ ELEMENT: '0.5928327282420562-8',
'element-6066-11e4-a52e-4f735466cecf': '0.5928327282420562-8',
selector: '//*[@itemtype]/*[@data-order-bacu]',
value: [Object],
index: 7 },
{ ELEMENT: '0.5928327282420562-9',
'element-6066-11e4-a52e-4f735466cecf': '0.5928327282420562-9',
selector: '//*[@itemtype]/*[@data-order-bacu]',
value: [Object],
index: 8 } ],
selector: '//*[@itemtype]/*[@data-order-bacu]',