第三章 Webdriver API简介

      Selenium 2.0主要的特性就是与WebDriverAPI的集成。WebDriver旨在提供一个更简单,更简洁的编程接口以及解决一些Selenium-RC API的限制。Selenium-Webdriver更好的支持页面本身不重新加载而页面的元素改变的动态网页。WebDriver的目标是提供一个良好设计的面向对象的API,提供了对于现代先进web应用程序测试问题的改进支持

3.1 Webdriver API

       Web应用程序的测试主要是基于调用Webdriver API来模拟用户操作,然后判断操作结果是否与预期的一致,从而达到自动化测试的目的。所以熟悉Webdriver的API的使用很重要,也是我们在做自动化测试的先决条件。

Webdriver API网上有官方文档,不过由于种种原因吧,官网不太容易打开。所以我们可以在百度中去搜索相关的文档,结果也非常多。不同语言的API有点儿不太一样,由于我们采用的是Python作为脚本语言,所以建议看出Python版的,推荐以下两个网页:

(1)selenium_webdriver(python)第一版:http://wenku.baidu.com/link?url=PDcKQYNL-iVRlahMunWoY1BDMw5vyUvv-AFCtC6eUCfG0R5XdC0SnBCHdp742uY6riA25FdBfaUtL-N2uZiXj6PXxIyRGcI-bV1QEYSZHGW

(2)虫师的翻译:http://www.cnblogs.com/fnng/archive/2013/06/16/3138283.html

这两篇文档刚好是一个人的,我看了一下写的比较详细,大家就去自行学习一下吧。

关于WebdriverAPI的一点儿说明:

Ø  API只是一些儿封闭的方法,大致浏览一下,知道有哪儿些API,完成什么操作即可,没有必要花很多时间去学习,边用边学。

Ø  API的学习要灵活,最好把同类的操作放到一起比较一下。因为在编写测试用例的过程中,不仅仅只有一种方法可以达到预期的结果。

Ø  要会使用Eclipse的联想功能。在写测试用例的时候,如果一时想不起来用什么方法了,可以利用联想功能进行查询。

本章我们就不详细讲解这些儿API的使用方法了,重点将放到页面元素的定位及检查点的设置,这些儿是体现一个自动化测试工程师水平的重点。

3.2 页面元素定位

       自动化测试是模拟用户对页面元素进行操作的,所以在操作之前,需要先定位到要操作的页面元素。如果页面元素都定位不到,其他的操作将无从谈起。而对页面元素定位技巧,随着经验的增加,将会越来越精准。而在此,我们将从基础谈起,然后再逐步加深!

3.2.1 WebElement对象提供的各种定位元素策略

下面我们先来讲解一下WebElement对象提供的各种常用的定位元素策略:

Ø  通过ID定位元素:

ID:driver.find_element_by_id(<elementID>)

示例:当一个页面元素如下,明显包含id属性,而且属性值是固定的时候,可以使用这个定位方法。

<div id="nav" class="m-subnav">…..</div>

 

Ex: driver. find_element_by_id(“nav”)

 

Ø  通过Name定位元素:

Name:driver.find_element_by_name(<elementName>)

示例:当一个页面元素如下,明显包含name属性,而且属性值是固定的时候,可以使用这个定位方法。

<inputtype="text" wx-validator-placeholder="用户名/手机号/邮箱" wx-validator-username-required="*请输入账号" wx-validator-rule="required" name="username" class="foc"placeholder="用户名/手机号/邮箱">

 

Ex: driver. find_element_by_name(“username”)

 

Ø  通过ClassName定位元素:

className:driver. find_element_by_class_name(<elementClassName>)

示例:当一个页面元素如下,明显包含name属性,而且属性值是固定的时候,可以使用这个定位方法。

<div class="bx-wrapper" style="max-width:100%;">….</div>

 

Ex: driver.find_element_by_class_name(“bx-wrapper”)

 

Ø  通过TagName定位元素:

tagName:driver.find_element_by_tag_name(<htmlTagName>)

示例:当一个页面元素如下,这是一个form元素,如果本页中只有一个form,可以使用这个定位方法。

<form wx-validator="" method="get" action="/deals" autocomplete="off">

<span>

<input type="text" wx-validator-notip="" wx-validator-rule="required" wx-validator-placeholder="输入关键词" name="k" placeholder="输入关键词">

<a class="bh-mhnbo" type="submit" href="javascript:;"></a>

</span>

</form>

 

Ex: driver.find_element_by_tag_name(“form”)

 

Ø  通过LinkText定位元素:

linkText:driver.find_element_by_link_text(<linkText>)

示例:当一个页面元素如下,明显是一个超级链接,可以使用这个定位方法。

<a href="http://www.google.com/search?q=cheese">cheese</a>

 

Ex: driver.find_element_by_link_text(“cheese”)

 

Ø  通过PartialLinkText定位元素:

partialLinkText:driver.find_element_by_partial_link_text(<partialLinkText>)

示例:当一个页面元素如下,明显是一个超级链接&#

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值