美文网首页
selenium-shadowDOM节点操作

selenium-shadowDOM节点操作

作者: 足__迹 | 来源:发表于2019-12-10 17:33 被阅读0次

在做web自动化的时候,发现页面上有些元素,在selenium中无法通过xpath来定位
最后发现元素在一个叫做shadow-root的节点下面


image.png

ShadoWDOM

上面所看到的shadow-root标签其实就是一个shadowDOM,那么什么是shadowDOM呢?

它是前端的一种页面封装技术,您可以将shadow DOM视为“DOM中的DOM”(可以看成一个隐藏的DOM)。

它是一个独立的DOM树,具有自己的元素和样式,与原始文档DOM完全隔离。

ShadowDOM 必须附在一个HTML元素中,存放shadowDOM的元素,我们可以把它称为宿主元素。

在HTML5中有很多的标签样式都是通过shadowDOM来实现的。

比如:日期选择框,音频播放标签,视频播放标签都自带了样式;

这种封装对于前端开发来说虽好,但是我们测试人员在做web自动给的时候就会遇到一些问题,shadowDOM中的标签无法定位。

操作:

实现步骤:

1、先定位到shadow-root的宿主节点(此处为id=box的div)

2、切换到shadow-root中

3、然后再选择shadow-root下的span标签

1、js实现代码如下:


image.png

2、selenium中通过js实现代码如下:


image.png

相关文章

  • selenium-shadowDOM节点操作

    在做web自动化的时候,发现页面上有些元素,在selenium中无法通过xpath来定位最后发现元素在一个叫做sh...

  • js常用API

    一、节点 节点属性 节点操作 Document节点 Element节点 对象

  • DOM节点

    操作节点appendChild(节点)insertBefore(节点,参照节点)replaceChild(参照节点...

  • 原生js 获取节点,操作节点,操作类名

    js中获取节点和针对节点的操作以及类名操作 获取节点 孩子节点 childNodes 获取所有子元素节点和文本节点...

  • 节点操作--父子节点

    学习节点操作的目的还是为了获取元素,获取元素的常用 两种方式:1.利用DOM提供的方法(API)获取元素例如:do...

  • 节点操作

    第一组:append() 从选中元素的后面添加内容prepend() 从选中元素的前面添加内容 注意:都是从被...

  • 节点操作

    Node类型 JavaScript中所有节点类型都继承自Node类型。 每个节点都有一个nodeType属性,用于...

  • 节点操作

    常用节点分为4类 nodeNamenodeTypenodeValue文档节点#document9null元素节点元...

  • 节点操作

    jquery元素节点操作 创建节点 var $div = $(' ');var $div2 = $(' 这是一个d...

  • 节点操作

    1、节点操作之父节点 2、节点操作之子节点 3、获取第一个子元素和最后一个子元素 4、新浪下拉菜单案例: 5、节点...

网友评论

      本文标题:selenium-shadowDOM节点操作

      本文链接:https://www.haomeiwen.com/subject/sfiggctx.html