selenium系列-WebDriverAPI(1)

WebDriver是selenium操作浏览器的一套API,在webdriver角度,它对多种编程语言都实现了一遍这套API,所以可支持多种编程语言。站在编程语言的角度,WebDriver是Python的一个用于Web自动化的第三方库。

元素定位

在操作一些元素的前提是需要找到它们,在学习过程中,走了一些弯路,后来和盼盼咨询过了解到有元素定位的工具,简化了定位方法,而不是从HTML文件中一点一点搜索关键字。Webdriver提供了8种元素定位的方法,在Python语言中,所对应的方法如下:

id                             定位

name                      定位

class                       定位

tag                          定位

link                        定位

partial link           定位

Xpath                    定位

CSS                        定位

这里需要一些前端知识,包括HTML和CSS,在此处不做过多介绍,如需要了解,请参照http://www.runoob.com/html/html-tutorial.html以及http://www.runoob.com/css/css-tutorial.html。

下面对以上定位做简单介绍

1.id定位是最容易的,因为HTML规定id属性在HTML文档中必须是唯一的,所以一般js编码时也都是对id进行操作,通过id定位,用法如下:

find_element_by_id(“**”)

2.name定位,name在当前页面中可以不唯一,用法如下:

find_element_by_name(“**”)

3.class定位,class指定元素的类名,用法与id、name类似,用法如下;

find_element_by_class_name(“**”)

4.tag定位,我们打开任意一个页面,查看前端都会发现大量的<div><input><a>等tag,所以很难通过tag name去区分不同元素,使用概率低,用法如下

find_element_by_tag_name(“**”)

5.link定位,主要用来定义文本链接,使用概率低,用法如下:

find_element_by _link_text(“**”)

6.partial link定位,是对link定位的一种补充,有些文本链接会比较长,这个时候可以去文本链接的一部分定位,只要这一部分信息可以唯一的标识这个链接,用法如下:

find_element_by_partial_link_text(“链接的部分内容”)

下面介绍Xpath与CSS定位,与前面几种方式相比,他们提供灵活的定位策略,可以通过不同的定位方式定位到想要的元素,在实际测试中也会用的比较多。

7.Xpath定位,Xpath是一种在XML文档中定位元素的语言,Xpath有多种定位策略,最简单直观的就是绝对路径,例如定位DLMMCP项目的主要食用农副产品市场监测->价格查询分析->商品价格分析->汇总分析,通过Selenium IDE录制时,每次回放都失败,提示找不到定位元素,此处通过Firebug中的Xpath定位方式来定位,并复制绝对路径,定位成功,具体使用时见附件所示。

复制Xpath路径后,将复制的路径贴到Python脚本中,使用方法如图:

即可实现,依次点击主要食用农副产品市场监测->价格查询分析->商品价格分析->汇总分析每个界面元素。用法为:

find_element_by_xpath(“**”)

8.CSS定位,CSS是用来描述HTML文档的样式的,CSS使用选择器来为页面元素绑定属性,查询某个元素的CSS,也可以利用firebug插件帮助生成CSS语法,使用方法同Xpath相同,即复制CSS路径即可,具体定位方法语句为:

find_element_by_css_selector(“**”)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值