脚本元素定位实例学习

一、Element Locator(元素定位器)

主要作用:定位需要操作或者验证的页面元素,告诉Selenium命令的操作对象,为Target参数提供数据依据,确定命令执行的位置。

二、定位元素的方法

1. id=id:根据指定的“@id”属性选择元素

可以通过Xpath,firebug 查看id属性

2. name=name:根据指定的"name"属性选择元素

3. identifier=identifier

特殊命令,定位根据其需要而改变,它首先会根据id=identifier寻找页面元素,如果未找到,则会根据name=identifier寻找页面元素

4.Link=textPattern:用link来选择HTML中匹配包含文字的链接

5. dom=javasccriptExpression:dom locator 使用dom方式定位元素

例如:进入http://www.glassshop.com网站,想定位文本框 enter your keywords,可以使用如下定位方法:dom=document.getElementByld("keywords")。(此方法不常用)

 6.Xpath=XpathExpression:Xpath locator 使用Xpath表达式来定位元素,有4种语法如下:

第1种语法:html/body/div[2]/div[4]/div[1]/div[1]/form/div/input[1]

此语法的优点:语法简单。缺点:如有很多满足条件的标签,命令会分不清楚操作对象。

第2种语法:查找所有form,然后再选择第1个form的第1个div,然后选择第1个input元素。

完整Xpath表达式为://form[1]/div/input[1]

此语法的优点:语法简单。缺点:如有很多满足条件的标签,命令会分不清楚操作对象。

第3种语法://input[@class="input"],@的意思是选择元素中的属性,该方法的意思是选择所有input元素中class属性为input的元素

若写成//input[@class]表示选择有属性名为class的input标签,//input[@]:表示选择有属性的input标签。

此种语法的优点:语法简单。 缺点:有时不只1个class属性为input的input标签。

第4种语法://input[@class="input" and @type="text"],表示为:选择input元素中type属性为text,并且class属性为input的元素

语法补充说明:

  • 选择未知元素,使用“*”选择满足条件的所有元素,如:“/*”表示选择满足条件的所有元素。
  • 选择分支使用"[]"符号,括号里面为分支的序号,如:/div[2]表示选择第2个div,而/div[last()]表示选择最后一个div
  • 特别提示,没有/div[first()]的语法,要选择第1个分支,使用/div[1]
  • 选择1个以上的元素时,使用|,如://div|//a,表示选择所有div和a元素。
  • 使用Xpath定位时不一定非得使用"//"开头,使用"//"开头只是为了简便语法、省略Locator前序
  • 在没有Locator前序的时候,默认为identifier定位方式,如果以document开头,那么默认为使用dom定位方法。若以"//"开头则默认为Xpath定位方法。

 

 

原文地址:https://www.cnblogs.com/hulifang/p/7210284.html