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选择器
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。