Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >量角器:如何在阴影DOM (聚合物)中选择多层阴影根下的输入元素

量角器:如何在阴影DOM (聚合物)中选择多层阴影根下的输入元素
EN

Stack Overflow用户
提问于 2020-01-09 08:08:30
回答 1查看 363关注 0票数 0

我正在使用Protractor 5.4.2来测试用Polymer.js创建的网页。我有一个具有多层阴影根的网页。我必须选择一个位于第10个卷影根下的输入。要遍历到第10级,我需要从第一个影子根移动,或者我可以直接访问第10个影子根?

EN

回答 1

Stack Overflow用户

发布于 2020-01-09 10:02:16

我在影子DOM上也遇到了同样的问题。我使用by.js (http://www.protractortest.org/#/api?view=webdriver.By.js)定位器在页面上运行我的自定义js代码。其结果是ElementFinder,它实际上表示了卷影dom内部元素。

代码语言:javascript
运行
AI代码解释
复制
class HomePage {
   get shadowRoot(): ElementFinder {
        return element(
            By.js(function (elem) {
                try {
                    // querySelectorAll returns array-like object, so converting it to Array with this:
                    return Array.prototype.slice.call(
                        document.querySelector(elem).shadowRoot.querySelectorAll('#mdr-ibe')
                    );
                } catch (err) {
                    // using try/catch to avoid uncaught errors
                    return [];
                }
            }, 'css-locator-of-element-with-shadow-root')
        );
    }

    public async startSearch() {
        // Using chaining to search for elements inside shadowRoot:
        const startSearchButton = this.shadowRoot.$('button.start-search')
        await browser.wait(EC.elementToBeClickable(startSearchButton));
        await startSearchButton.click();
    }
}

但请记住-使用卷影根元素在firefox中不能很好地工作

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59659590

复制
相关文章

相似问题

如何在#阴影-根(阴影DOM )中重新样式元素

11

量角器:无法使用by.deepCss(“input”)选择阴影DOM (聚合物)中的输入元素

40

如何选择阴影根元素

21

聚合物元素中没有阴影根

10

聚合物定制元素阴影DOM问题

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档