自动化测试定位

前奏

脚本运行流程

1.引包:from selenium import webdriver

2.创建对象:driver = webdriver.Chrome()

3.操作定位元素:driver.find_element…..

4.关闭对象:driver.quit()

基本定位方法                                  

id定位

Webdriver中对应的方法:find_element_by_id(value)

name定位

Webdriver中对应的方法:find_element_by_name(NAME值)

class name定位

Webdriver中对应的方法:find_element_by_class_name(class值)

tag name定位

Webdriver中对应的方法:find_elements_by_tag_name(tag值)

link text定位

Webdriver中对应的方法:find_element_by_link_text(linktext)        注:匹配链接标签中的文本内容 

partial link text定位

Webdriver中对应的方法:find_element_by_partial_link_text(linktext)       注:定位页面链接只需要模糊匹配即可 

定位后操作:

  send_keys():输入

  clear():清空

  click():点击 

  Find_elements_by*方法通常用来统计页面元素个数 

Xpath定位                                                                                                      

语法格式

//div[@id="value"]       注://标签[@属性=“属性值”]

节点间的关系

父节点(Parent)

每个元素以及属性都有一个父节点。

子节点(Children)

一个元素节点可有零个、一个或多个子节点。

同胞节点(Sibling)

表示拥有相同父节点的节点。

先辈节点(Ancestor)

表示某节点的父节点,父节点的父节点,以及父节点的所有祖先节点。

后代节点(Descendant)

表示某个节点的子节点,子节点的子节点,以及子节点的所有后代节点。

Xpath定位语法—绝对路径

  表达式:/html/body/div/input[@value=“查询”]

Xpath定位语法—相对路径

  表达式://input[@value=“查询”]

Xpath定位语法—索引

  表达式://input[2]    注:第二个input

  定位第二个div下的超链接

  表达式://div[last()]/a

  定位第一个div中的超链接

  表达式://div[last()-1]/a

  定位最前面一个属于div元素的子元素中的input元素

  表达式://div/input[position()<2]

Xpath定位语法—属性值

  //img[@alt=“div1-img1”]    注:定位img元素  

  //img[@href=‘http://www.sogou.com’]    注:定位页面一张图片

  //div[@id=‘div2’]/input[@name=‘div2input’]   注:定位id属性为div2的div中name属性为div2input的input输入框

  //div[@id=‘div1’]/a[@href=‘http://www.sogou.com’]     注:定位第一个div中的href=‘http://www.sogou.com’链接

  //input[@type=‘button’]    注:定位页面的查询按钮

Xpath定位语法—模糊属性值

starts-with(str1,str2)      注:查找属性alt的属性值以”div1”关键字开始的页面元素   //img[starts-with(@alt,’div1’)]

contains(str1,str2)         注:查找alt属性的属性值包含”img”关键字的页面元素。     //img[contains(@alt,’img’)]

Xpath定位语法—Xpath轴(Axes)

  parent:选择当前节点的上层父节点      //img[@alt=‘div2-img2’]/parent::div

  child:选择当前节点的下层所有子节点       //div[@id=‘div1’]/child::img

  ancestor:选择当前节点所有上层的节点          //img[@alt=‘div2-img2’]/ancestor::div

  descendant:选择当前节点所有下层的节点(子、孙)       //div[@name=‘div2’]/descendant::img

  following:选择当前节点之后显示的所有节点         //div[@id=‘div1’]/following::img

  following-sibling:选择当前节点后续所有兄弟节点        //a[@href=‘http://www.sogou.com’]/following-sibling::input

  preceding:选择当前节点前面的所有节点       //img[@alt=‘div2-img2’]/preceding::div

  Preceding-sibling:选择当前节点前面的所有亲兄弟节点         //input[@value=‘查询’]/preceding-sibling::a[1]

Xpath定位语法—页面元素的文本

  通过text()函数可以定位到元素文本包含某些关键内容的页面元素

  Xpath表达式

    //a[text()=“搜狗搜索”]    

    //a[.=“搜狗搜索”]

    //a[contains(.,”百度”)]

    //a[contains(text(),”百度”)]

    //a[contains(text(),”百度”)]/preceding::div

    //a[contains(百度”)]/..

 CSS定位                                                                                                        

语法格式

div[id="value"]       注:标签[属性=“属性值”]

参考:https://www.w3school.com.cn/cssref/css_selectors.ASP

 

 

 

 

猜你喜欢

转载自www.cnblogs.com/070727sun/p/12368636.html