selenium元素定位 —— 提高篇 JavaScript获取页面元素

1513 篇文章 61 订阅
1425 篇文章 54 订阅

JavaScript 是通过JavaScript 返回值来定位元素,比xpath还繁琐,不推荐使用,这章节也不会做过多的介绍。

JavaScript(js)获取页面元素是通过js的返回值获取元素,有两种方式:DOM、JQuery

1、DOM获取元素

HTML DOM 定义了访问和操作 HTML 文档的标准。每个页面都是一个DOM Tree 结果,如下图

通过 HTML DOM,树中的所有节点均可通过 JavaScript 进行访问。我们通过JavaScript返回该节点就是我们的元素。

document.getElementById() 获取带有指定 ID 的元素

document.getElementsByClassName() 获取包含带有指定类名的所有元素的节点列表

document.getElementsByName() 获取指定Name的所有元素的节点列表

document.getElementsByTagName() 获取带有指定标签名称的所有元素的节点列表

注意:getElementsByClassName() 在 Internet Explorer 5,6,7,8 中无效

示例:通过DOM的JavaScript脚本获取元素

js='return document.getElementById("query")'
js='return document.getElementsByClassName("sec-input")[0]'
js='return document.getElementsByName("query")[0]'
js='return document.getElementsByTagName("input")[0]'
js='return document.getElementById("sf").getElementsByTagName("input") ' #  id=sf的input子元素
element=driver.execute_script(js)  # 执行js获取元素

注意:由于getElements返回的为列表所以需要使用[0]指定为第1个元素,如果查找出对应元素存在多个可以指定第几个。

2、JQuery获取元素

JQuery获取元素也是通过返回值获取,比DOM的兼容性高。

常用语法格式如下:

return $("p:contains('包含的字符')")[0] 根据页面文本获取元素

return $(css定位)[0] css定位获取对象

return $x(xpath定位)[0] xpath定位获取对象

示例:

js = 'return $("input[name=w]+input")[0]'
js = 'return $("form#sf input[type=text]")[0]'
js = 'return $x("//input[@name=\'w\']/following-sibling::input")[0]'
js='$("p:contains(\'搜狗搜索APP\')")[0]'
element=driver.execute_script(js)  # 执行js获取元素

附件:JQuery选择器

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
 

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值