如何在WebdriverIO中抓取Element的底层javascript元素,以便能够执行原生js函数?

vq8itlhq  于 2023-02-18  发布在  Java
关注(0)|答案(1)|浏览(97)

例如,在纯javascript中,你可以这样做:

obj = document.querySelector('li#wmd-help-button')
obj.getBoundingClientRect()

当您通过WebdriverIO拥有Element时,即拥有对象时,如何执行getBoundingClientRect或类似函数:const elem = $('li#wmd-help-button')
此问题并非特定于getBoundingClientRect,而是指所有无法从Webdriverio的Element类直接访问的此类函数

ecfdbz9o

ecfdbz9o1#

我想你要找的是Webdriver.IO的browser.execute方法https://webdriver.io/docs/api/browser/execute
它允许你在当前页面的上下文中执行你的脚本。根据你提供的代码,它可能如下所示:

const boundingClientRect = await browser.execute(async () => {
       let obj = document.querySelector('li#wmd-help-button');
       return obj.getBoundingClientRect();
 });

相关问题