+ 首页>>技能>>内容

技能Selenium专题—元素定位(一)500+次围观

Selenium WebDriver提供一个先进的技术来定位web页面元素。Selenium功能丰富的API提供了多个定位策略:ID、Name、Xpath、CSS选择器等等。我们也可以执行自定义的定位策略来定位元素。

善于使用浏览器工具来检查页面元素结构
无论你使用哪种浏览器测试,都有一款合适的工具辅助你分析页面

  • 1、Firefox的Firebug插件
  • 2、Chrome内置的开发者工具
  • 3、Internet Explorer自带的开发者工具

1、使用findElement方法定位元素

Selenium Webdriver定位元素通过使用findElement()和findElements()方法。findElememt()方法返回一个基于指定查找条件的WebElement对象或是抛出一个没有找到符合条件元素的异常。

findElements()方法会返回匹配指定查询条件的WebElements的集合,如果没有找到则返回为空。

查询方法会将By实例作为参数传入。Selenium WebDriver提供了By类来支持各种查询策略。

我们先来看一个例子。
百度首页的搜索框,通过开发者工具我们可以看到搜索框具有的属性:


所以我们可以用id属性、name属性或则xpath来定位这个搜索框

//id
WebElement content_id = driver.findElement(By.id("kw"));
//name
WebElement content_name = driver.finElement(By.Name("wd"));
//xpath
WebElement content_xpath = driver.finElement(By.Xpath("//input[@id='kw'] "));
//or
//WebElement content_xpath = driver.finElement(By.Xpath("//input[@name='wd'] "));

2、使用findElements方法定位元素

测试需求以百度首页为例,我们要验证百度首页导航链接的数量,并打印出他们的超链接地址

Selenium专题—元素定位(一)

程序清单如下:

package com.example.tests; 
import static org.junit.Assert.*; 
import java.util.*; 
import org.junit.*; 
import org.openqa.selenium.*; 
import org.openqa.selenium.ie.InternetExplorerDriver;
public class Test{ 
 @Test 
 public void test() {     
     WebDriver driver = new InternetExplorerDriver(); 
     driver.get("http://www.baidu.com"); 
     List links = driver.findElements(By.cssSelector("#nv a")); 
     //验证链接数量 
     assertEquals(10, links.size()); 
     //打印href属性 
     for (int i = 0; i < links.size(); i++) { 
    System.out.println(links.get(i).getAttribute("href")); 
  }     
  driver.close(); 
 } 
}

执行后打印结果如下:

http://news.baidu.com/ 
http://tieba.baidu.com/ 
http://zhidao.baidu.com/ 
http://music.baidu.com/ 
http://image.baidu.com/ 
http://video.baidu.com/ 
http://map.baidu.com/ 
http://baike.baidu.com/ 
http://wenku.baidu.com/ 
http://www.baidu.com/more/

findElements()方法返回所有匹配定位策略的WebElement的集合,我们可以使用java中List类来创建WebElements的实例 ,List类中的size()方法会告诉你这个集合中元素的总数量。 通过for循环将得到List中所有的元素,再调用getAttribute()方法得到元素的属性。

+ 猜你喜欢...

===== 关于 DiggerPlus =====
DiggerPlus是国内新锐测试人垂直内容博客,专注于挖掘测试工具,普及测试技术,专注于测试人能力提升,博客上线后就受到广大测试人的热烈追捧;此外,DiggerPlus深度整合评测资源,揭秘科技数据和真相,让读者更懂科技,更好地把玩科技。 我们始终保持"独立,客观,严谨,优秀"的优良作风,努力为读者带来源源不断的优质内容。想访问更多酷毙的测试人网站?赶紧来DiggerPlus测试人网址导航看看吧!

===== DiggerPlus Team =====
DiggerPlus Team是DiggerPlus官方发起的团队,这是一群热爱科技,热爱测试,喜欢深度挖掘的热血测试人,他们是评测师,测试专家。 我们欢迎优秀的测试人加入DiggerPlus Team。 加入DiggerPlus,可以成为我们的认证Dper,认证Dper拥有DiggerPlus独一无二的专栏并得到个人展示。

===== DiggerPlus 官方读者群 =====
DiggerPlus官方读者群(一)

+ 关于本文作者

我也很想让世界变得更美好,可是上帝却不开放源代码。

的专栏 | 专栏作者 | 访问Kiven的主页

+ 已有15个评论

开源中国精彩推送

基于开源中国OpenAPI开发
  • Copyright © 2014 DiggerPlus. 114 queries in 1.252 seconds.
    使用合作网站账号快速登录,更多精彩等着您: 开源中国