Selenium WebDrivero如何使用相同的选择器迭代元素

Selenium WebDrivero如何使用相同的选择器迭代元素,selenium,webdriver-io,browser-automation,Selenium,Webdriver Io,Browser Automation,对于一个特定的div id,我告诉WebDrivero返回一个包含所有复选框的数组,如下所示: browser.elements('div[data test id=“filter:inventory source”]input[type=“checkbox”]”)值 这将返回: [ { ELEMENT: '0.39366615381480075-8', 'element-6066-11e4-a52e-4f735466cecf': '0.39366615381480075-8',

对于一个特定的div id,我告诉WebDrivero返回一个包含所有复选框的数组,如下所示:

browser.elements('div[data test id=“filter:inventory source”]input[type=“checkbox”]”)值

这将返回:

[ { ELEMENT: '0.39366615381480075-8',
    'element-6066-11e4-a52e-4f735466cecf': '0.39366615381480075-8',
    selector: 'div[data-test-id="filter: inventory source"] input[type="checkbox"]',
    value: { ELEMENT: '0.39366615381480075-8' },
    index: 0 },
  { ELEMENT: '0.39366615381480075-9',
    'element-6066-11e4-a52e-4f735466cecf': '0.39366615381480075-9',
    selector: 'div[data-test-id="filter: inventory source"] input[type="checkbox"]',
    value: { ELEMENT: '0.39366615381480075-9' },
    index: 1 },
  { ELEMENT: '0.39366615381480075-10',
    'element-6066-11e4-a52e-4f735466cecf': '0.39366615381480075-10',
    selector: 'div[data-test-id="filter: inventory source"] input[type="checkbox"]',
    value: { ELEMENT: '0.39366615381480075-10' },
    index: 2 }]
我遇到的问题是选择器都是相同的。当我使用forEach循环时,我不能迭代检查每个复选框。WebdriverIO将只选择第一个并检查该选项


有什么想法吗?

当您添加
.value
时,它会得到总元素大小的第一个元素值。
不太熟悉WebDrivero,但请尝试以下代码:

var valueAttrs = 
browser.elements('div[data-test-id="filter: inventory source"] input[type="checkbox"]')
    .map(function(e){ return e.getAttribute('value'); });

valueAttrs.forEach(v=>{console.log('value: ' + v);});