Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jestjs 如何使用jest在stenciljs shadow dom中查找组件_Jestjs_Puppeteer_Shadow Dom_Stenciljs - Fatal编程技术网

Jestjs 如何使用jest在stenciljs shadow dom中查找组件

Jestjs 如何使用jest在stenciljs shadow dom中查找组件,jestjs,puppeteer,shadow-dom,stenciljs,Jestjs,Puppeteer,Shadow Dom,Stenciljs,在Stencil e2e测试中,仅当从没有阴影DOM的元素中选择时,我才能使用查找组件: 比如说 // defined as vars because they are reused in a sequence of tests var page: E2EPage, root: E2EElement, home: E2EElement, recipe: E2EElement, master: E2EElement it('renders', async ()

在Stencil e2e测试中,仅当从没有阴影DOM的元素中选择时,我才能使用查找组件:

比如说

// defined as vars because they are reused in a sequence of tests  
var page: E2EPage,
    root: E2EElement,
    home: E2EElement,
    recipe: E2EElement,
    master: E2EElement

it('renders', async () => {
    page = await newE2EPage()
    await page.setContent('<app-root/>')

    root = await page.find('app-root')
    expect(root).toHaveClass('hydrated')

    home = await root.find('app-home')
    expect(home).not.toBeNull()

    recipe = await home.find('wizard-layout > screen-recipe >>> recipe-manager')
    expect(recipe).not.toBeNull()

    master = await home.find('wizard-layout > screen-recipe >>> recipe-manager >>> master-detail')
    expect(master).not.toBeNull()

  })
jest/Puppeter如何在给定模具组件的阴影DOM中找到组件


谢谢

据我所知,你不能像选择阴影元素那样使用CSS选择器

您需要逐个选择它们,如下所示:

//伪码

recipeElement
.shadowRoot
.querySelctor('myElement')
如果
myElement
本身有一个阴影根,并且您想进一步钻取,则情况会变得更糟,最后会出现如下情况:

recipeElement
.shadowRoot
.querySelctor('myElement')
.shadowRoot
.querySelector('deepedElement')
recipeElement
.shadowRoot
.querySelctor('myElement')
.shadowRoot
.querySelector('deepedElement')