我想在使用 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')
问:我是否需要以某种方式将window
或document
导入到我的测试中?有没有其他方法可以从测试内部获得window
或document
?
最终:如何获得混合 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
做一些事情。