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

java在文件中定位行 java实现定位_css

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

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

java在文件中定位行 java实现定位_css_02

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

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

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

java在文件中定位行 java实现定位_js脚本_03

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

java在文件中定位行 java实现定位_css_04

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

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

java在文件中定位行 java实现定位_css_05

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

java在文件中定位行 java实现定位_时间控件_06