Javascript Can';t遍历多个选择器($$,findElements)webdriver.io
我正在尝试将webdriver.io()与spectron一起用于电子应用程序 我能够访问findElement或$contain包含的函数。例如,我可以在此findElement($)选择器上使用.click()Javascript Can';t遍历多个选择器($$,findElements)webdriver.io,javascript,webdriver,electron,webdriver-io,spectron,Javascript,Webdriver,Electron,Webdriver Io,Spectron,我正在尝试将webdriver.io()与spectron一起用于电子应用程序 我能够访问findElement或$contain包含的函数。例如,我可以在此findElement($)选择器上使用.click() app.client.$('//按钮[@data value,“Agree”)]')。单击() 我的应用程序包含4个按钮,其数据值为Agree。这个$selector只需单击第一个。我的目标是遍历所有的“同意”按钮并单击所有按钮 我正在尝试这样做: app.client.$$('//
app.client.$('//按钮[@data value,“Agree”)]')。单击()
我的应用程序包含4个按钮,其数据值为Agree。这个$selector只需单击第一个。我的目标是遍历所有的“同意”按钮并单击所有按钮
我正在尝试这样做:
app.client.$$('//button[@data value,“Agree”)]')。forEach(button=>button.click())
但是,这意味着forEach函数不存在,因为app.client.$$不返回数组,这与本文档所述相反:
如果我试图解决$$返回的承诺,请执行以下操作:
app.client.$$('//button[@data value,“Agree”)]')。然后(buttons=>console.log(buttons))
我得到了一个包含4个按钮的数组,但只显示元素标识符、索引和元素对象id。它们不包括一个扩展原型来运行像.click()这样的命令。我也找不到任何使用webdriver查询特定元素ID的方法。请从v4升级到v5,或者最好升级到v6
干杯 我使用的是建立在webdriverIO之上的。我正在使用spectron的v10.0.0。除了升级WebDrivero,还有其他选项吗?WebDrivero v5和v6都支持nodejs 10。您必须将v4中的每个json wire元素(按钮)转换为WebDrivero对象。没有代码片段。你需要帮忙吗?是的,那太好了!