一、通过id定位
(1)#kw 定位id=kw的元素(2)input#kw 定位id=kw的input标签元素 python:driver.find_element_by_css_selector("input#kw") java:driver.findElement(By.cssSelector("input#kw")) robotframework:css=input#kw二、通过classname定位
在学习css的时候,应该都知道有两种选择器,一种是id选择器,一种是class类选择器,而id用#表示,类选择器用.(点)表示,所以别问我上面id定位的#是什么意思啊。知识点会比较多,所以基础还是比较重要的。(1).s_ipt 定位class=s_ipt的元素(2)class=bg s_ipt_wr quickdelete-wrap,类似这种叫复合class,由多个类选择器组成,定位的写法则是:.bg.s_ipt_wr.quickdelete-wrap,所有空格用.(点)代替三、元素属性定位
(1)input[id=kw](2)input[class=s_ipt](3)input[id=kw][class=s_ipt](4) a[href='baidu.com']
还支持模糊匹配的,主要是太长的属性值方便使用;以class=bg s_ipt_wr quickdelete-wrap举例:(1)span[class ^=bg] 匹配所有span标签class属性值bg开头的元素(2)span[class $=rap] 匹配所有span标签class属性值rap结尾的元素(3)span[class *=quick] 匹配所有span标签class属性值中间有quick的元素四、元素层级定位
1、子元素定位(>大于号)(1)span>input 定位span标签下的input标签(2)form>span>input 定位form标签下span标签下的input标签以大于号>为分层,查找元素定位必须一层一层的以>往下写,有多个则匹配多个2、后代元素(空格)(1)span input 定位span下所有的input标签,包括span下的所有层次的input,注意不是span下一层的input,是所有3 、根据兄弟元素定位时只能从上面的兄弟找下面的兄弟,如:css=p+li,写成li+p是不行的
(1)p+li 定位p元素同级下的所有li元素
4、元素层级css还支持三个方法,分别是first-child、last-child、nth-child(n)(1)first-child:第一个后代元素(2)last-child:最后一个后代元素(3)nth-child(N):指定第N个后代元素下面举例:(1)input:first-child 定位所有层次第一个为input的元素,注意是第一个元素为input标签的(2)span input:first-child 定位span标签下,第一个为input标签的元素(3)span :last-child 定位span标签下,最后一个元素(4)span input:last-child 定位span标签下,最后一个为input标签的元素(5)span :nth-child(2) 定位span标签下,第二个元素(6)form.fm>:nth-child(2) 定位form标签,class等于fm下的第二个元素--------------------- 原文:https://blog.csdn.net/ouyanggengcheng/article/details/77197294