css selector
优点:通过样式定位,速度快
缺点:支持selenium但不支持appium--xpath可用
selenium定位语法$(‘‘)
示例如下:
$(‘#s_tab>a:nth-child(2)‘)name 或id定位子元素
$(‘#s_tab a:nth-child(2)‘)子子孙孙元素
$(‘#s_tab a:nth-last-child(1)‘)
1.3 css_selector定位详解
driver.find_element_by_css_selector()
css定位可以分为四类:id、class、其他属性、路径。
1.3.1 #id方式
两种方式,可以在前面加上tag名称,也可以不加
driver.find_element_by_css_selector(‘#id_value’)
driver.find_element_by_css_selector(‘tag_name#id_value’)
1.3.2 .class方式
两种方式,前面加上tag名称,也可以不加。如果不加tag名称时,点不能省略。
driver.find_element_by_css_selector(‘.class_value’)
driver.find_element_by_css_selector(‘tag_name.class_value’)
有的class_value比较长,而且中间有空格时,不能把空格原样写进去,那样不能识别。这时,空格用点代替,前面要加上tag_name。
driver.find_element_by_css_selector(‘div.panel.panel-email‘).click()
1.3.3其他属性方式
两种方式,可以在前面加上tag名称,也可以不加。
driver.find_element_by_css_selector(“[attri_name=’attri_value’]”)
driver.find_element_by_css_selector("input[type=‘password‘]").send_keys(‘我要自學網‘)
driver.find_element_by_css_selector("[type=‘password‘]").send_keys(‘我要自學網‘)
1.3.4路径法
两种方式,可以在前面加上tag名称,也可以不加。注意它的层级关系使用大于号“>”。
driver.find_element_by_css_selector("form#loginForm>ul>input[type=‘password‘]").send_keys(‘111222333‘)