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( )