问题描述
我正在尝试将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。
干杯!