webdriver+python定位元素的几种方法CSS练习

1.通过id定位 find_element_by_id()

2.通过name定位 find_element_by_name()

3.通过class name定位 find_element_by_class_name()

4.通过tag name定位 find_element_by_tag_name()

5.通过link定位 find_element_by_link_text()

6.通过partical link定位 find_element_by_partical_link_text()

7.通过xpath定位 find_element_by_xpath()

8.通过css定位 find_element_by_css_selector()

注:

1.patical link即部分文本,定位时只需要输入部分文本,如超链接文本为"去付款吧",使用link定位及find_element_by_link_text('去付款吧'),使用partical link定位find_element_by_partical_link_text('付款')

2.tag name 相同的概率很高

3.xpath定位分为绝对路径和相对路径,绝对路径以'/'开头,相对路径以'//'开头

4.css定位中,id用'#',class用'.',如定位<div class="subdiv">使用find_element_by_css_selector('.subdiv'),定位<ul id="recordlist">使用find_element_by_css_selector('#recordlist')

5.id/name/class/link/xpath是webdriver中最常用的定位方法

三、CSS选择器
* 通用元素选择器,匹配任何元素
E 标签选择器,匹配所有使用E标签的元素
.info class 选择器,匹配所有class属性中包含info的元素
#footer id选择器,匹配所有id属性等于footer的元素
E,F 多元素选择器,同时匹配所有E元素或者F元素,E和F之间用空格分隔
E>F 子元素选择器,匹配所有E元素的子元素F
E+F 毗邻元素选择器,匹配紧随E元素之后的同级元素F(只匹配第一个)
E~F 同级元素选择器,匹配所E元素之后的所有同级元素F
E[att='val'] 属性att的值为val的E元素(区分大小写)
E[att^='val'] 属性att的值以val开头的E元素(区分大小写)
E[att$='val'] 属性att的值以val结尾的E元素(区分大小写)
E[att*='val'] 属性att的值包含val的E元素(区分大小写)
E[att1='v1'][att2*='v2'] 属性att1的值为v1,att2的值包含v2(区分大小写)
E:contain('xxxx') 内容中包含'xxxx'的E元素
E:not(s) 匹配不符合当前选择器的任何元素

</form>
<div class="subdiv">
<ul id="recordlist">
<p>Heading</p>

定位</form>

find_element_by_css_selector(‘form’)

定位<div class="subdiv">

find_element_by_css_selector(‘.subdiv’)
find_element_by_css_selector(‘form+div’)

定位<ul id="recordlist">

find_element_by_css_selector(‘#recordlist’)

find_element_by_css_selector(‘ul#recordlist’) find_element_by_css_selector(‘div>ul’)

定位<p>Heading</p>

find_element_by_css_selector(‘div>ul’)
find_element_by_css_selector(‘div.subdiv > ul > p’)

四、HTML DOM Document 对象方法

document.getElementById( )

document.getElementsByName( )

document.getElementsByClassName( )

document.getElementsByTagName( )

注释:传递给 getElementsByTagName() 方法的字符串可以不区分大小写

document.querySelector( )

document.querySelectorAll( )

原文地址:https://www.cnblogs.com/51testing/p/13940535.html