WebDriverIO select 使用元素索引

WebDriverIO select using elements index

我正在使用 WebDriverIO 在创建元素列表后尝试访问(即 getText、getAttribute、click 等)元素。如果我使用 browser.element() 方法,我很容易实现这个元素,但是当我使用 browser.elements() 时,我无法访问数组中的各个对象。根据 WebDriverIO docs,我应该可以使用 value 属性.

访问它们

这是我的伪代码。我假设这两个函数应该 return 相同的东西:

usingElement() {
  return browser.element('.someCss');
}

usingElements() {
  return browser.elements('.someCss').value[0];
}

当我尝试使用第一段代码时,它运行得非常好..但是 当我尝试使用第二个块时,它给我一个错误提示 usingElements.click is not a functionusingElements.getText is not a function,等等

如何在使用 browser.elements() 方法后隔离单个元素对象?

我想您可能需要使用以下两种方式之一:

方式一:

var elmnts = browser.elements('.someCss');
var element = elmnts.value[0].ELEMENT;
browser.elementIdClick(element);

方式二:

var element = $$('.someCss')[0];
element.click();

谢谢, 纳文

您的索引参考放置在错误的位置。尝试:

var myElement = browser.elements('.someCss')[0];
myElement.click();

您不需要参考 value 属性,因为 WebdriverIO 足够聪明,可以为您推断。