如何在 WebdriverIO+Appium 中获取伪元素



我想在使用 WDIO 和 Appium 为 Android 混合应用程序进行的测试中从伪元素 (::before( 的 CSS 中获取一个值 (content(,因为设计师已经在那里存储了当前的响应式设计状态。所以我的测试会知道要期待哪种布局(元素(。

相关问题(1;2;3(的多个答案表明,使用.getComputedStyle()可能是唯一的解决方案。但这在我的测试中似乎不起作用。如果我使用document.defaultView.getComputedStyle(...),则window.getComputedStyle(...)document is not defined错误window is not defined。此外,选择器本身似乎无法解决伪元素。

我的许多尝试之一的示例:

document.defaultView.getComputedStyle($('body'),'::before').getPropertyValue('content')

:我是否需要以某种方式将windowdocument导入到我的测试中?有没有其他方法可以从测试内部获得windowdocument

最终:如何获得混合 Android 应用::before<body>content值?

感谢Jeremy Schneider(@YmerejRedienhcs(和Erwin Heitzman(@erwinheitzman(的帮助!

一种解决方案是使用execute函数:

let contentMode = browser.execute(() => {
let style = document.defaultView.getComputedStyle(document.querySelector('body'),'::before');
return style.getPropertyValue('content')
});

或者,也许也可以用getHTML做一些事情。

相关内容

  • 没有找到相关文章

最新更新