【发布时间】:2020-03-22 19:38:35
【问题描述】:
我有这样排列的组件:
app-home
shadow-root
component1
shadow-root
div id=div1
换句话说,我的 app-home 和 component1 都有 shadow dom。
我可以像这样在 Stenciljs E2E 测试中轻松找到 component1:
const page = await newE2EPage();
await page.setContent('<app-home></app-home>');
const component1 = await page.find('app-home >>> component1');
但是,无论我尝试过什么,我都无法在 component1 中获得 #div1。取回一个 E2EElement 很重要,这样我就可以使用它的方法,例如触发页面更改的 click。
这是我尝试过的:
-
page.find('app-home >>> component1 >>> #div1')
返回空值
-
component1.find(':host >>> #div1') 或 component1.find(':root >>> #div1') 或 component1.find('>>> #div1') 或 component1.find( '#div1') 或 component1.find('component1 >>> #div1')
返回空值
-
component1.shadowRoot.querySelector('#div1')
此方法获取一个元素,但点击它或向它发送事件 对页面中的 app-root 或 component1 没有影响。
关于当两个元素都有影子域时如何找到孩子的孩子有什么建议吗?
【问题讨论】:
标签: e2e-testing stenciljs