如何使用 .querySelector() 获取网页元素? Webdriver-io

How do I get a web page element using a .querySelector()? Webdriver-io

在 Webdriver-io 测试中,我需要使用 .querySelector()

获取网页元素

此代码:

a = browser.executeScript('window.document.querySelector("div.my_diagram_div canvas")', [])
console.log('a = ', await a)

输出如下输出:

a =  { 'element-6066-11e4-a52e-4f735466cecf': 'ELEMENT-40' }

这不是一个元素对象,我不能再使用它了。如何获取网页元素对象?

P.S。在浏览器控制台中,代码returns 正确结果

您在控制台中得到的只是元素的表示,而不是实际输出。

如果你想要那个 html 标签使用

在 Webdriver-io 测试中,我需要使用 .querySelector()

获取网页元素

使用:

a = browser.executeScript('window.document.querySelector("div.my_diagram_div canvas").outerHTML', [])
console.log('a = ', await a)

a = await $('div.my_diagram_div canvas')
console.log('a = ', await a.getProperty("outerHTML"))

更新

如果您需要元素对象,只需使用

   a = await browser.executeScript('window.document.querySelector("div.my_diagram_div canvas")', [])
   elm=    await $(a)
   await elm.getWindowRect()

在这种情况下你也不需要 executescript

   elm=    await $('div.my_diagram_div canvas')
   await elm.getWindowRect()