高级定位(web)

'''高级定位-css'''
'''css 选择器概念'''
#css 选择器有自己的语法规则和表达式
#css 定位通常分为绝对定位(右键-copy selector)和相对定位
#和Xpath一起常用于UI自动化测试中的元素定位


'''css 定位场景'''
#支持web产品
#支持app端的webview

'''css 相对定位的优点'''
#可维护性更强
#语法更加简洁
# 绝对定位
#$("#ember63 > td.main-link.clearfix.topic-list-data > span > span > a")
# 相对定位
#$("#ember63 [title='新话题']")
#解决各种复杂的定位场景

'''css 定位的调试方法'''
#进入浏览器的console
#输入:
#$("css表达式")
#或者$$("css表达式")
#如果表达式中含有字符串,要和外边的字符串单双引号区分开 外单内双 或者外双内单

'''css基础语法'''
'''类型	    表达式                      在console中的写法'''
#标签	    标签名                      $('input')
#类	        .class属性值                $('.s_ipt')  .代表类属性
#ID	        #id属性值                   $('#kw')     #代表id属性
#属性	    [属性名='属性值']           $('[name="wd"]')
#如果class后边的属性值为多个单词时,中间要加"." 连接

'''css关系定位'''
'''类型	                   格式                   在console中的写法'''
#并集	                  元素,元素               $('.bg,.s_ipt_wr,.new-pmd,.quickdelete-wrap')
#邻近兄弟(了解即可)     元素+元素                $('.soutu-btn+input')
#兄弟(了解即可)	     元素1~元素2              $('.soutu-btn~i')
#父子(重点)	         元素>元素                $('#s_kw_wrap>input')
#后代(重点)	         元素 元素                $('#form input')

'''css 顺序关系'''
'''类型	                 格式         在console中的写法'''
#父子关系+顺序	        元素 元素     $('#form>input:nth-child(2)')  (同一个爸爸)
#父子关系+标签类型+顺序 元素 元素     $('#form>input:nth-of-type(1)') (不同的爸爸)
'''高级定位-xpath'''
'''xpath基本概念'''
#XPath 是一门在 XML 文档中查找信息的语言
#XPath 使用路径表达式在 XML 文档中进行导航
#XPath 的应用非常广泛
#XPath 可以应用在UI自动化测试

'''xpath 定位场景'''
#web自动化测试
#app自动化测试

'''xpath 相对定位的优点'''
#可维护性更强
#语法更加简洁
#相比于css可以支持更多的方式

'''xpath 定位的调试方法'''
#浏览器-console
#$x("xpath表达式")

#浏览器-elements
#ctrl+f 输入xpath或者css

'''xpath 基础语法(包含关系)'''
'''一般都使用 //* '''
#表达式	      结果
#/	          从该节点的子元素选取            $x("/")
#//	          从该节点的子孙元素选取          $x("//*")
#*	          通配符                         $x("//*")
#nodename	  选取此节点的所有子节点(标签)  $x("//div")
#..	          选取当前节点的父节点           $x('//*[@id="site-logo"]/..')
#@	          选取属性                      $x('//*[@id="site-logo"]')

'''xpath 顺序关系(索引)'''
#xpath通过索引直接获取对应元素
# 获取此节点下的所有的li元素
#$x("//*[@id='ember21']//li")
# 获取此节点下【所有的节点的】第一个li元素
#$x("//*[@id='ember21']//li[1]")

'''xpath 高级用法'''
#[last()]: 选取最后一个
#//input[last()]
#[@属性名='属性值' and @属性名='属性值']: 与关系
#//input[@name='passward' and @pwd='123456']
#[@属性名='属性值' or @属性名='属性值']: 或关系
#//input[@name='passward' or @pwd='123456']
#[text()='文本信息']: 根据文本信息定位
#//*[text()='霍格沃兹测试开发']
#[contains(text(),'文本信息')]: 根据文本信息包含定位
#//*[contains(text(),'霍格沃兹')]
#注意:所有的表达式需要和[]结合

这格式太乱了,调整一下吧