【发布时间】:2020-09-18 15:15:10
【问题描述】:
我正在尝试将 webdriver.io (https://webdriver.io/) 与 spectron 一起用于电子应用程序。
我能够访问 findElement 或 $ 包含的函数。例如,我可以在这个 findElement ($) 选择器上使用 .click()。
app.client.$('//button[@data-value, "Agree")]').click()
我的应用程序包含 4 个按钮,这些按钮的 data-value 属性为 Agree。这个 $ 选择器只会点击第一个。我的目标是遍历所有“同意”按钮并单击所有按钮。
我正在尝试这样做:
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 的任何方法。
【问题讨论】:
标签: javascript webdriver electron webdriver-io spectron