Selenium_八大元素定位
八大元素定位方法
1、使用ID定位元素
b.find_element_by_id('c1').click()
2、使用CLASS定位元素
b.find_element_by_class_name('cc2').click()
3、使用name定位元素
b.find_element_by_name('n3').click()
4、使用链接全文本/部分文本定位元素(只对连接对象有效)
b.find_element_by_link_text('???').click()
b.find_element_by_partial_link_text('???').click()
5、使用标签名定位元素(如果有多个同名标签,默认选择第一个)
b.find_element_by_tag_name('input').click()
6、使用XPATH绝对路径/相对路径定位元素
6.1 div 标签是从 1 开始计数,第一个的"索引"为 ‘1’
6.2 .// 或 // 表示相对路径都可以 或 .//*[@id='c5'] ,但是遍历范围扩大化
b.find_element_by_xpath('/html/body/div/form/div[5]/div/input').click()
b.find_element_by_xpath(".//input[@id='c5']").click()
b.find_element_by_xpath("//div[@class= 'controls']/input[@id= 'c5']").click()
6.3 通过元素页面显示名称用Xpath定位
b.find_element_by_xpath("//*[text()='退出']").click()
7、使用CSS选择器定位元素
7.1 #ID
b.find_element_by_css_selector('#c5').click()
7.2 标签[id='?'] 或 标签[class='?'] 或 标签.class名称>标签#ID
b.find_element_by_css_selector('input[id="c5"]').click()
b.find_element_by_css_selector('div[class="controls"]>input[id="c5"]').click()
b.find_element_by_css_selector('div.controls>input#c5').click()
8、层级定位
8.1 演示,先定位一个上层元素对象,然后根据该对象继续定位
ele = b.find_element_by_class_name("form-horizontal")
eles = ele.find_elements_by_tag_name('input')
print len(eles)
8.2
注意上层如果是定位多个元素, _elements ,定位下层是要加索引
b.get('http://www.baidu.com')
ele1 = b.find_element_by_class_name('head_wrapper')
ele2 = ele1.find_elements_by_xpath('//div[@id="u1"]')
ele3 = ele2[0].find_elements_by_tag_name('a')
print len(ele3)