常用的selenium定位方法

1.页面上有多个相同属性

42b343bf181511160f45d925f34dc7eeece.jpg

使用elements方法给元素加下标去定位,从0开始,在页面上查找你要定位的元素是第几个

2.class有多个属性且有空格的,使用css方法,#代表id,  .代表class

d6853c59e64dd4bd02758634361cc08fd9a.jpg

self.driver.find_element_by_css_selector("div.ql-editor.ql-blank").send_keys("UITEST富文本在线报名")

3.时间控件,这个让我弄了蛮久的,本来想写个方法获取今天 和 明天的时间然后填写的,结果总是报各种错,不堪回首不想提

这个方法有兴趣的可以看看,里面注释掉的都是可以用的,只是我后面改了其它方法,想把这些转换成str去调用,但还是报错,所以放弃了

1b92c8862202669abdd648c74421ec01da9.jpg

最后我选择了最简单的办法,直接输入时间~~比如2019-05-05,缺点就是过了这个时间,我得再往后修改时间;看代码,结束时间那里我注释掉了,因为我试了很多次,只有开始时间能输入,但是结束时间却不行,多次调试才发现,在开始时间输入完成后,会自动跳到结束时间那里---而我的步骤却是先点击到结束时间输入框,再输入--这就造成了我的二次多余的点击会让时间控件关闭掉,当然没有办法输入了,这个跟我的粗心有关,也希望大家遇到想不明白的问题时,先自己细心的梳理好操作步骤才能少走弯路

056cda68edd8b9a7e4521a74e6f70f518c0.jpg

另:我这个时间控件是input的类型,可以直接输入的;如果遇到readonly的属性,就要使用js脚本的方式去掉这个属性,然后再输入了,可以参考这个帖子

https://www.cnblogs.com/tobecrazy/p/4206742.html

4.层级定位,比如我想点击删除-确定的按钮,但是直接以“确定”有时候定位不到或者说页面上有太多个确定按钮了,去数它是第几个下标有时候并不准确,且数量有增减的时候下标也会变,会导致定位不到,比较理想的办法就是层级定位

35d47d6ebdf91aa9722f6c49cc941a625c0.jpg

实现代码:首先确定下区域,大标签是div,这个“确定”是在第三个div[3]下的第二个button[2]下的span,喏,路径定好了,自然就能找到,管你是第几个“确定”

ecaffeba17656114f84e853a2a34e772ff7.jpg

~~好像没了,想到再补充

转载于:https://my.oschina.net/EvanDev/blog/3022349

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值