上一篇博客硒+ python自动化测试(二)——使用webdriver操作浏览器讲解了使用webdriver操作浏览器的各种方法,可以实现对浏览器进行操作了,接下来就是对浏览器页面中的元素进行操作,操作页面元素,首先要找到操作的元素,对元素进行定位
<强>查看页面源码强>
要定位页面元素,需要找到页面的源码,即浏览器中,打开页面后,在页面上点击鼠标右键,会有“查看源代码”的选项,点击后就会进入页面源码页面,在这里就可以找到页面的所有元素
使用Chrome浏览器打开页面后,在浏览器的地址栏右侧有一个图标,点击这个图标后,会出现许多菜单项,选择更多工具里的开发者工具,就会出现页面的源码,不同版本的浏览器菜单选项可能不同,但是都会在开发者工具里找到页面的源码
Firefox浏览器打开页面后,在右键菜单里也可以找到“查看页面源代码”的选项。在Firefox中,可以使用浏览器自带的插件查看定位元素,在Firefox的附加组件里搜索firebug进行下载,安装firebug组件后会在浏览器的工具栏中多出一个小虫子的图标,点击这个图标就可以打开组件查看页面源码,打开后如下图所示
以百度首页搜索页面为例,看一下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来定位,百度首页上方有如下几个元素
例如要定位“新”闻,找到元素的代码,有一个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自动化测试之页面元素定位