无法遍历多个选择器$$,findElementswebdriver.io

问题描述

我正在尝试将webdriver.io(https://webdriver.io/)与Spectron一起用于电子应用。

我能够访问findElement或$包含的函数。例如,我可以在该findElement($)选择器上使用.click()。

app.client.$('//button[@data-value,"Agree")]').click()

我的应用程序包含4个按钮,它们的数据值属性为“同意”。 $选择器将只单击第一个。我的目标是遍历所有“同意”按钮,然后单击所有按钮。

我正在尝试这样做:

app.client.$$('//button[@data-value,"Agree")]').forEach(button => button.click())

但是,这意味着forEach函数不存在,就好像app.client。$$不返回数组,这与本文档所说的相反:https://webdriver.io/docs/api/browser/$$.html

如果我尝试通过以下方式解决$$所返回的承诺,则:

app.client.$$('//button[@data-value,"Agree")]').then(buttons => console.log(buttons))

我得到了4个按钮的数组,但是只有ELEMENT标识符,索引和元素对象ID出现。它们不包括在其上运行诸如.click()之类的命令的扩展原型。我也找不到任何使用webdriver查询特定ELEMENT ID的方法

解决方法

请从v4升级到v5,或者最好升级到v6。

干杯!