xpath,css select 定位元素
xpath定位 元素
//* :找到页面内所有的元素
//div:只找页面中的div
/:下一级
#单属性定位
//div[@classname='daliuliu'] #定位页面中classname为daliuliu的 div
#多属性定位
//div[@classname='daliuliu' and @name='name'] #定位页面中classname为daliuliu,name=name 的 div
#层级定位
//div[@classname='daliuliu']/input[@type='text'] #定位页面中classname为daliuliu的 div下,type=text的input元素
#下标定位
//div[@classname='daliuliu']/input[@type='text'][1]#定位页面中classname为daliuliu的 div下,第一个type=text的input元素
css_select 定位元素
# css_select 定位元素
#此方式没有像xpath那样的下标取值,当定位的多个元素时需要按层级的方式定位到自己想要的元素
# 用元素的id定位 #daliuliu #定位id是daliuliu的元素
# 用元素的class定位
.daliuliu #定位class是daliuliu的元素
#用元素的自定义属性定位
div[name='name'] #定位name=name的div
# 多属性定位原先
div[name='name'][classname='daliuliu'] #定位name=name,classname=daliuliu的这个div
#层级定位
div[name='name']>input #定位div name=name 下的input元素
#
div[name^='na'] #定位 name名称以na开头的div元素
div[name$='na'] #定位 name名称以na结尾的div元素
css:索引
1.css也可以通过索引option:nth-child(1)来定位子元素,这点与xpath写法用很大差异,其实很好理解,直接翻译过来就是第几个小孩
#选择第一个option
driver.find_element_by_css_selector("select#nr>option:nth-child(1)").click()
#选择第二个option
driver.find_element_by_css_selector("select#nr>option:nth-child(2)").click()
#选择第三个option
driver.find_element_by_css_selector("select#nr>option:nth-child(3)").click()