【问题标题】:Testcafe and Shadow DomTestcafe 和 Shadow Dom
【发布时间】:2020-06-12 11:38:28
【问题描述】:

我有一个使用 Web 组件的网页。我能够选择所有元素并执行断言,例如检查existsinnerText。但是,在执行click 时,它不起作用。我想知道对shadow-root 中的元素执行点击是否有任何限制?

样本

我有一个 id 为 #pricePlans 的父 div,然后我用它作为基础来选择其中的元素。您可以在下面看到我如何使用 Selector 的示例。光标甚至没有悬停在我的按钮上。

this.marathiCard = Selector(() => document.querySelector('#pricePlans').shadowRoot.querySelectorAll('[class*="grid-item"]')).nth(1); this.marathiSignUpButton = this.marathiCard.find('[class*="c-btn c-btn--primary"]'); await t.click (this.marathiSignUpButton); 提前谢谢你

【问题讨论】:

    标签: testing automation automated-tests e2e-testing testcafe


    【解决方案1】:

    .shadowRoot怎么样,你可以这样写:

    test('Click inside shadowDOM', async t => {
        const shadowBtn = Selector(() => document.querySelector('#abc').shadowRoot.querySelector('#btn1'));
    
        await t        
            .click(shadowBtn);
    });
    
    

    Github 上有一些示例,例如https://gist.github.com/AlexanderMoskovkin/897073929442db031d518e1e6db4ec9ehttps://github.com/DevExpress/testcafe/issues/2172

    【讨论】:

    • 感谢您的回复。我也使用 .shadowRoot 来选择我的元素。我很确定选择器可以正常工作,因为我可以在innerText 上执行断言,但是在单击时它似乎不起作用。我已经举了一个例子来说明我的选择器在上面的样子。
    • 您能否给我们举一个 DOM 的示例,最好是您尝试实现此目标的页面?我不知道为什么它不起作用,但也许当更多的人有机会玩它时,有人会来给你你正在寻找的答案。
    • 请在1drv.ms/u/s!AiCRZHD12JeaZ_xe_1vGYevBKgM?e=ZeULCG 下载页面,如果向下滚动,您会发现“我们的订阅”部分,这是 shadowroot 中的一个 Web 组件。我正在尝试单击任何“免费开始 14 天”按钮。谢谢
    猜你喜欢
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    • 2017-06-24
    • 1970-01-01
    • 2018-06-25
    • 2011-06-10
    • 2018-01-26
    • 1970-01-01
    相关资源
    最近更新 更多