分享好友 最新动态首页 最新动态分类 切换频道
selenium使用Xpath+CSS+JavaScript+jQuery的定位方法(专治各种定位不准并发症)_自动化测试火狐浏览器快速定位xpath和css
2024-12-26 03:37

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化

selenium使用Xpath+CSS+JavaS<i></i>cript+jQuery的定位方法(专治各种定位不准并发症)_自动化测试火狐浏览器快速定位xpath和css

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

(3)当iframe上的操作完后,想重新回到主页面上操作元素,这时候,就可以用switch_to_default_content()方法返回到主页面。

如下代码

iframe = driver.find_element_by_tag_name(“iframe”)

driver.switch_to_frame(iframe)

switch_to_default_content()

(4)如何判断元素是否在iframe上
1.定位到元素后,切换到firepath界面。
2.看firebug工具左上角,如果显示Top Window说明没有iframe。
3.如果显示iframe#xxx这样的,说明在iframe上,#后面就是它的id。

【第四部分】selenium用javascript定位

因为selenium的内核引擎就是用JavaScript来驱动的,所以只要selenium自带的那些原始辣鸡方法出现定位不了的、点击不了的并发症一旦发作,就可以使用JavaScript大绝招,除了JavaScript,还有jQuery大绝招,一个个来,你阵亡了,他来替补,滔滔江水永不休。

一、以下总结了5种js定位的方法
除了id是定位到的是单个element元素对象,其它的都是elements返回的是list对象
1.通过id获取
document.getElementById(“id”)
2.通过name获取

document.getElementsByName(“Name”)
返回的是list
3.通过标签名选取元素
document.getElementsByTagName(“tag”)
4.通过CLASS类选取元素
document.getElementsByClassName(“class”)
兼容性:IE8及其以下版本的浏览器未实现getElementsByClassName方法
5.通过CSS选择器选取元素
document.querySelectorAll(“css selector")
兼容性:IE8及其以下版本的浏览器只支持CSS2标准的选择器语法

【举例代码】

js = ‘document.getElementById(“helloId”).click();’

driver.execute_script(js)

js1 = ‘document.getElementsByClassName(“helloName”)[0].value = “王大明”;’   //整个HTML文档里第一个使用CSS样式类的class="helloName"属性,它的value属性的值设置为“王大明”

driver.execute_script(js1)

【第五部分】selenium用jquery定位【简直逆天,老天爷都惊呆了,眼睛瞪的滚圆】

JQuery是2006年1月诞生的一个基于封装JavaScript的框架,你经常看到的美元符号带上一个圆括号$(‘XXX’),其实就是document.getElementBy什么什么的这个js方法,至于XXX前面带.的话,就是document.getElementByClass,带#的话,就是document.getElementById。

【看不清图,右键新窗口打开图片】

1.Id

inputTest=“$(‘#smart_input’).val(‘帅气的我还能再削’)”

driver.execute_script(inputTest)

2.Class

inputTest=“$(‘.usersearch’).val(‘帅气的我还能再削’)”

  1. Type

inputTest=“$(‘:text’).val(‘帅气的我还能再削’)”

  1. 层级

inputTest=“$(‘#searchForm>#smart_input’).val(‘帅气的我还能再削’)”

inputTest=“$('#searchForm #smart_input ').val(‘帅气的我还能再削’)”   【注意两个id选择器“#searchForm #smart_input”中间是一个空格】

inputTest=“$(‘#searchForm>input:first’).val(‘帅气的我还能再削’)”

选择最后一个input元素

clickbutton=“$(‘#searchForm>input:last’).click()”

选择第几个input元素

inputTest=“$(‘#searchForm>input:eq(0)’).val(‘帅气的我还能再削’)”    从0开始算第一个

inputTest=“$(‘#searchForm>input:nth-child(1)’).val(‘帅气的我还能再削’)”   当然也可以这样,nth-child从1开始算第一个

知识链接

1、nth-child(N):下标从1开始;eq(N):下标从0开始

2、nth-child(N):选择多个元素;eq(N):选择一个元素。

  1. 其他

#inputTest=“$(‘input[name=query]’).val(‘帅气的我还能再削’)”

inputTest=“$(‘input[id=smart_input]’).val(‘帅气的我还能再削’)”


【附录1】xpath的语法使用基础

Xpath的使用方法

例子 1:html/body/div[1]/div[2] (如果不熟悉html的朋友们,需要自行百度html。

该xpath 表示 : 在 html标签下 -> body标签下 -> 第一个div标签下 -> 第二个div标签

很好理解,继续

例子 2:https://blog.csdn.net/2401_84563179/article/details//*[@id=‘content’]/div[2]/ul

这样会有人不理解了 https://blog.csdn.net/2401_84563179/article/details//*[@id=‘content’] 到底是什么意思呢

. 代表当前路径

a//b 表示:在a标签下的子孙辈b标签

* 可以是任何标签

[@id=‘content’] 表示是 id 为 content

所以:这个例子的意思是: id 为 content 的任何子标签下面 -> 第二个 div标签下 -> ul 标签

Xpath基础学习完毕,接下来开始进阶学习

//p[text()=‘a’]  :文本为 a 的p标签

//p[text()=‘a’]  : 文本包含 a 的p标签

//a[@class=‘abc’]   :class 为 a的 p标签 (当然咯。既然可以为 @class 就一定能用 @id ,为什么不联想下 @src 和@href呢

//p[not(@class=‘a’)]   :class 不为 a的 p标签

好了,进阶完毕,如果要使用更高阶的Xpath要先属性以上内容,然后联合 Selenium使用

Xpath和其他定位方式的比较(主要是和CSS定位的对比

Xpath的最大好处是能向上查找,不过缺点是速度过慢。

【附录2】CSS定位语法基础

CSS定位速度快,功能多,但是不能向上查找,比xpath好用,执行效率比xpath来的快,曾经做过两种定位比较的测速,是本人认为最好用的定位方式。

大致用法总结

下面都是精华哦

1、*:checked  选中*的checked元素
2、 li.refined.list.group.item (如果class中间有空格,可以.+.+.全写也可以只写任意一个
    .checkbox[type^=‘check’][onclick*=‘Bebe’][checked= +a 是选中同级的后面的a

3、 li a        :选中 li 标签的后代 a

5、 li>a       :选中 li 标签的子元素 a

4、 li,a        :选中 li 和 a

5、 li +a      :选中 li 同级的 下一个 a

6、 li ~a       :选中 li 同级的 下面所有的 a

7、 li>a:last-child  /  li>a:last-of-type  : 选中 li 下最后面一个 a

8、 li:not([class*=‘_’])    : li 中的 calss 不含 ‘_’

li:not(:nth-of-type(1))    : 不含第一个 li 的所有 li

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导,让我们一起学习成长

li:not(:nth-of-type(1))    : 不含第一个 li 的所有 li

[外链图片转存中…(img-5LftcShv-1715065576920)]
[外链图片转存中…(img-kLMlJRbO-1715065576920)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

最新文章
逾期之后如何协商还款才能顺利解决问题
逾期之后如何协商还款小编导语在现代社会中,经济活动频繁,借贷行为已成为人们日常生活的一部分。由于种种原因,借款人难免会遇到逾期还款的情况。逾期还款不仅会影响个人信用记录,还可能导致法律纠纷和额外的经济负担。因此,学会如何有
新媒体广告投放的主要付费模式有三种
CPM是按照展示计费,广告每展现给一千个人所需花费的成本,所以又叫干人展现成本。例如某个广告位干次曝光的价格为10元,则CPM=10。目前在很多平台CPM都是最主流的计费方式,按此付费的广告大多以品牌展示、产
【T989QQ输入法下载】三星T989QQ输入法8.7.7免费下载
QQ输入法是一款高效、智能的手机输入软件。能够支持多种输入:拼音、英文、五笔、笔画、手写、语音、数字、符号,配合整句输入、智能纠错、云候选等扩展功能,更加便捷的满足了不同用户的需求。QQ输入法通过多项技术,为用户带来更快、更稳
微信推广引流怎么做(4个精准引流的大招)
在这里首先要说的是,现在已经过了暴力吸粉的时候了,很多人通过各种方法引流来不精准的粉丝,无论对后期运营还是变现都产生了很大影响。因为引流不精准,用户对你需求度不高,自然不是拉黑就是选择性忽略,所以精准引流要先找准对标用户的
现代警务探索|兰州安宁公安AI战队:聚“数”成塔 乘“智”而上
“团队成员来自情指、治安、网安、特警、派出所等多个单位。” “AI战队”负责民警魏一茜十分自信:“别看他们来自不同的单位,实际上个个都是建模能手!”今年4月,安宁分局成功举办第一届大数据建模比武竞赛,展示出的跳跃思维和涌现出的
高清美女写真:用搜狐简单AI一键生成梦幻女友!
限时免费,点击体验最近超火的AI生图神器,坐拥3000美女的大男主就是你! https://ai.sohu.com/pc/generate/textToImg?_trans_=030001_yljdaimn 在这个以视觉为王的时代,越来越多的年轻人喜欢通过人工智能来创作与分享自己的美丽幻想。想
百度输入法 V6.1.13.6
百度输入法是百度公司推出的一款非常酷的输入法,它打字速度快、使用顺畅,还有各种皮肤和颜文字词库,让你的输入法个性潮流。百度输入法不仅有强大的词库还有亲笔信、神码传文、百度日历、百度袋鼠等特色功能,而且百度输入法非常注重用户
环幕影院
苏州图腾机柜有限公司_网络服务器机柜|工业控制柜|配电柜|高低压...苏州图腾机柜有限公司位于江苏苏州高新技术开发区,是深圳图腾总部授权专业销售图腾网络服务器机柜,工业控制柜,配电柜,高低压开关柜,CB电子箱等电气化产品公司,公司
网站制作费用多少合适?小白必看的超实用费用指南
  “做网站会不会很贵啊?”“一万块够不够?几百块行不行?”关于网站制作费用,这些问题估计在不少新手的脑海里盘旋过吧!实际上,网站制作的成本是一个综合考量内容、设计和功能的过程,没有标准答案,但绝对有规律可循。本文结合真实案例
苹果手机助手有哪些?苹果手机用什么助手最好?
  你知道苹果手机助手有哪些?苹果手机用什么助手最好?iOS手机助手哪个好用吗?  现在的苹果手机助手越来越强大,海量游戏应用和软件可随意让用户免费下载。大到几十上百元,小到付费测试版,以及还没有正式上线的所有应用,只需一键
相关文章
推荐文章
发表评论
0评