Selenium2+python自动化6-八种元素元素定位(Firebug和firepath)【转载】

摘要:
在这里,您可以学习如何使用工具进行查看,以下教程将对其进行深入解释。2.打开FirePath插件并选择css3。定位后,下图在红色区域显示了摘要:selenium的webdriver提供了八种基本元素定位方法。前六个元素通过元素属性直接定位,而后面的xpath和css更加灵活,您需要关注其中之一。

前言   

自动化只要掌握四步操作:获取元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告。本篇主要讲如何用firefox辅助工具进行元素定位。
元素定位在这四个环节中是至关重要的,如果说按学习精力分配的话,元素定位占70%;操作元素10%,获取返回结果10%;断言10%。如果一个页面上的元素不能被定位到,那后面的操作就无法继续了。接下来就来讲webdriver提供的八种基本元素定位方法。 

一、环境准备:

    1.浏览器选择:Firefox

    2.安装插件:Firebug和FirePath(设置》附加组件》搜索:输入插件名称》下载安装后重启浏览器)

    3.安装完成后,页面右上角有个小爬虫图标

    4.快速查看xpath插件:XPath Checker这个可下载,也可以不用下载

    5.插件安装完成后,点开附加组件》扩展,如下图所示

Selenium2+python自动化6-八种元素元素定位(Firebug和firepath)【转载】第1张

二、查看页面元素:

以百度搜索框为例,先打开百度网页

    1.点右上角爬虫按钮

    2.点左下角箭头

    3.讲箭头移动到百度搜索输入框上,输入框高亮状态

    4.下方红色区域就是单位到输入框的属性:

<input id="kw" class="s_ipt" type="text" autocomplete="off" maxlength="100" name="wd">

 Selenium2+python自动化6-八种元素元素定位(Firebug和firepath)【转载】第2张



三、元素定位:find_element_by_id()

    1.从上面定位到的元素属性中,可以看到有个id属性:id="search-key",这里可以通过它的id属性单位到这个元素。

    2.定位到搜索框后,用send_keys()方法

 Selenium2+python自动化6-八种元素元素定位(Firebug和firepath)【转载】第3张


元素定位:find_element_by_name()

    1.从上面定位到的元素属性中,可以看到有个name属性:name="wd",这里可以通过它的name属性单位到这个元素。

    说明:这里运行后会报错,说明这个搜索框的name属性不是唯一的,无法通过name属性直接定位到输入框

 Selenium2+python自动化6-八种元素元素定位(Firebug和firepath)【转载】第4张


元素定位:find_element_by_class_name()

    1.从上面定位到的元素属性中,可以看到有个class属性:class="s_ipt",这里可以通过它的class属性定位到这个元素。

 Selenium2+python自动化6-八种元素元素定位(Firebug和firepath)【转载】第5张


元素定位:find_element_by_tag_name()

    1.从上面定位到的元素属性中,可以看到每个元素都有tag(标签)属性,如搜索框的标签属性,就是最前面的input

    2.很明显,在一个页面中,相同的标签有很多,所以一般不用标签来定位。以下例子,仅供参考和理解,运行肯定报错

 Selenium2+python自动化6-八种元素元素定位(Firebug和firepath)【转载】第6张

 
元素定位:find_element_by_link_text()

    1.定位百度页面上"hao123"这个按钮

Selenium2+python自动化6-八种元素元素定位(Firebug和firepath)【转载】第7张

查看页面元素:

<a class="mnav" target="_blank" href="http://www.hao123.com">hao123</a>

    2.从元素属性可以分析出,有个href = "http://www.hao123.com

说明它是个超链接,对于这种元素,可以用以下方法

 Selenium2+python自动化6-八种元素元素定位(Firebug和firepath)【转载】第8张

 
元素定位:find_element_by_partial_link_text()

    1.有时候一个超链接它的字符串可能比较长,如果输入全称的话,会显示很长,这时候可以用一模糊匹配方式,截取其中一部分字符串就可以了

    2.如“hao123”,只需输入“ao123”也可以定位到

 Selenium2+python自动化6-八种元素元素定位(Firebug和firepath)【转载】第9张

 

元素定位:find_element_by_xpath()

    1.以上定位方式都是通过元素的某个属性来定位的,如果一个元素它既没有id、name、class属性也不是超链接,这么办呢?或者说它的属性很多重复的。这个时候就可以用xpath解决

    2.xpath是一种路径语言,跟上面的定位原理不太一样,首先第一步要先学会用工具查看一个元素的xpath

 Selenium2+python自动化6-八种元素元素定位(Firebug和firepath)【转载】第10张

     3.安装上图的步骤,在FriePath插件里copy对应的xpath地址

 Selenium2+python自动化6-八种元素元素定位(Firebug和firepath)【转载】第11张

 
元素定位:find_element_by_css_selector()

    1.css是另外一种语法,比xpath更为简洁,但是不太好理解。这里先学会如何用工具查看,后续的教程再深入讲解

    2.打开FirePath插件选择css

    3.定位到后如下图红色区域显示

 

Selenium2+python自动化6-八种元素元素定位(Firebug和firepath)【转载】第12张

 总结:

selenium的webdriver提供了八种基本的元素定位方法,前面六种是通过元素的属性来直接定位的,后面的xpath和css定位更加灵活,需要重点掌握其中一个。

1.通过id定位:find_element_by_id()

2.通过name定位:find_element_by_name()

3.通过class定位:find_element_by_class_name()

4.通过tag定位:find_element_by_tag_name()

5.通过link定位:find_element_by_link_text()

6.通过partial_link定位:find_element_by_partial_link_text()

7.通过xpath定位:find_element_by_xpath()

8.通过css定位:find_element_by_css_selector()

免责声明:文章转载自《Selenium2+python自动化6-八种元素元素定位(Firebug和firepath)【转载】》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Django(七)模型:字段属性、字段选项(参数)Vs2005中使用Ajax(二)【转】下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

学习笔记(爬虫):爬取笔趣阁剑来小说

1、目的 爬取笔趣阁网站的剑来小说正文内容,并保存到本地中。 2、实现方案 首先,请求目标网站的网页数据,通过分析找出章节地址的特点,并通过xpath获取到章节链接; 其次,请求每一章节的内容,通过数据清洗去除脏数据,得到剑来文章正文; 最后,保存数据到本地。 3、程序设计 3.1 请求数据模块 请求模块,负责请求网站数据,主要使用requests的g...

selenium css 、xpath优先级

推荐的元素定位优先级 优先级最高:id 优先级其次:name 优先级再次:css 优先级更次:xpath 最多的,就是css 针对css和xpath的优先级做一个说明 1、css 是配合HTML工作的,是一种匹配模式定位, xpath是配合xml工作的,通过遍历的方式定位 两...

python爬虫数据解析之xpath

xpath是一门在xml文档中查找信息的语言。xpath可以用来在xml文档中对元素和属性进行遍历。 在xpath中,有7中类型的节点,元素,属性,文本,命名空间,处理指令,注释及根节点。 节点 首先看下面例子: <?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> &l...

Scrapy+eChart自动爬取生成网络安全词云

因为工作的原因,近期笔者开始持续关注一些安全咨询网站,一来是多了解业界安全咨询提升自身安全知识,二来也是需要从各类安全网站上收集漏洞情报。 作为安全情报领域的新手,面对大量的安全咨询,多少还是会感觉无从下手力不从心。周末闲来无事,突发奇想,如果搞个爬虫,先把网络安全类文章爬下来,然后用机器学习先对文章进行分析,自动提取文章主成分关键词,然后再根据实际需求有...

JSONPath

概要 JSONPath,XPath for JSON,是仿造 XPath 进行 JSON 定位的一套语法。 基本语法 XPath JSONPath Description / $ 根对象或元素 . @ 当前对象或元素 / . or [] 子操作 .. n/a 父操作 // .. 向下遍历,创意来自 E4X * * 通配 @...

移动端自动化==&amp;gt;Appium定位方式总结

1、ID Android Android的resource-id对应ID定位方式,可以通过index来获取需要的元素(从0开始查找dom树中的同名resource-id属性)。使用appium-desktop来获取元素时,id和resource-id是相同的,如果只有resource-id,可能存在重复现象,如果提示有id的定位方式,则可以只接获取,代表唯...