硒+ python自动化测试之页面元素定位

  

上一篇博客硒+ python自动化测试(二)——使用webdriver操作浏览器讲解了使用webdriver操作浏览器的各种方法,可以实现对浏览器进行操作了,接下来就是对浏览器页面中的元素进行操作,操作页面元素,首先要找到操作的元素,对元素进行定位

  

<强>查看页面源码

  

要定位页面元素,需要找到页面的源码,即浏览器中,打开页面后,在页面上点击鼠标右键,会有“查看源代码”的选项,点击后就会进入页面源码页面,在这里就可以找到页面的所有元素

  

使用Chrome浏览器打开页面后,在浏览器的地址栏右侧有一个图标,点击这个图标后,会出现许多菜单项,选择更多工具里的开发者工具,就会出现页面的源码,不同版本的浏览器菜单选项可能不同,但是都会在开发者工具里找到页面的源码

  

Firefox浏览器打开页面后,在右键菜单里也可以找到“查看页面源代码”的选项。在Firefox中,可以使用浏览器自带的插件查看定位元素,在Firefox的附加组件里搜索firebug进行下载,安装firebug组件后会在浏览器的工具栏中多出一个小虫子的图标,点击这个图标就可以打开组件查看页面源码,打开后如下图所示

  

硒+ python自动化测试之页面元素定位

  

以百度首页搜索页面为例,看一下webdriver定位元素的八种方式

  

<强>使用id定位

  

在页面源码中找到搜索输入框的元素定义

        & lt;输入id="千瓦" name=" wd " class=" s_ipt " value=" "最大长度=" 255 "自动完成=肮亍痹?/pre>      

可以看到输入框有一个有一个id的属性,调用find_element_by_id()根据id属性来找到元素,参数为属性的值

        input_search=driver.find_element_by_id(千瓦)      

<强>使用名字定位

  

使用find_element_by_name()根据名称属性找到元素,参数为名称属性的值

  

搜索框有一个name=" wd "的属性,使用姓名查找搜索输入框元素

        input_search=driver.find_element_by_name (wd)      

<强>使用类名定位

  

使用find_element_by_class_name()根据className属性找到元素,参数为类名属性的值

  

搜索框有一个类=皊_ipt”的属性,使用类名查找元素

        input_search=driver.find_element_by_class_name (s_ipt)      

<强>使用tagName定位

  

使用find_element_by_tag_name()根据tagName属性找到元素,参数为元素标签的名称

  

每个页面的元素都有一个标签,搜索框的标签为输入,有时候一个页面里有许多相同的标签,所以用这种方法找到的元素一般都不准确,除非这个元素使用的标签在这个页面里是唯一的。一般不会使用这种方式来定位元素

        input_search=driver.find_element_by_class_name(“输入”)      

<强>使用link_text定位

  

页面上都会有一些文本链接,点击链接后会打开一个新的页面,这些可以点击的链接可以使用find_element_by_link_text来定位,百度首页上方有如下几个元素

  

硒+ python自动化测试之页面元素定位

  

例如要定位“新”闻,找到元素的代码,有一个href的属性,这是点击后打开的页面

        & lt; a href=" http://news.baidu.com " rel=巴獠縩ofollow”=皌j_trnews”类名=癿nav”在新闻& lt;/a>      

使用link_text查找元素,参数为元素的文本信息

        新闻=driver.find_element_by_link_text(“新闻”)      

<强>使用partial_link_text定位

  

这种方式类似于link_text的定位方式,如果一个元素的文本过长,不需要使用文本的所有信息,可以使用其中的部分文本就可以定位

  

使用partial_link_text查找百度首页的“新”闻元素,参数为文本信息,可以使用全部的文本,也可以使用部分文本

        新闻=driver.find_element_by_link_text(“新闻”)//使用全部文本   新闻=driver.find_element_by_link_text(“新”)//使用部分文本      

<强>使用css选择器定位

  

使用css属性定位元素有多种方法,可以使用元素的id、名称、名称,也可以使用元素的其他属性,如果一个元素没有上述的几种属性或者定位不到时,可以使用css来定位

硒+ python自动化测试之页面元素定位