我正在尝试将 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 的任何方法。