Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';t遍历多个选择器($$,findElements)webdriver.io_Javascript_Webdriver_Electron_Webdriver Io_Spectron - Fatal编程技术网

Javascript Can';t遍历多个选择器($$,findElements)webdriver.io

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.$$('//

我正在尝试将webdriver.io()与spectron一起用于电子应用程序

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

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对象。没有代码片段。你需要帮忙吗?是的,那太好了!