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类来支持各种查询策略。
我们先来看一个例子。
百度首页的搜索框,通过开发者工具我们可以看到搜索框具有的属性:
<input type="text" name="wd" id="kw" maxlength="100" style="width:474px;" autocomplete="off">
所以我们可以用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方法定位元素
测试需求以百度首页为例,我们要验证百度首页导航链接的数量,并打印出他们的超链接地址
baidu
程序清单如下:
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<WebElement> 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()方法得到元素的属性。
分享到:
相关推荐
ChroPath是一款专为前端开发者设计的利器,尤其在进行网页元素定位时,它的强大功能无疑是一把神器。这款插件的核心是XPath和CSS查询,它们是Web开发中用于查找和操作HTML或XML文档结构的重要工具。XPath是一种在XML...
在HolliView项目的自动化测试中,使用Python进行Canvas画布元素定位是一种高效且灵活的方法。Canvas是HTML5中用于在网页上绘制图形的元素,它提供了丰富的API来创建动态、交互式的图形。Python则以其强大的库支持和...
selenium之元素定位,共八种定位方法,以百度搜索框为例子进行讲解
webdriver 元素定位笔记 WebDriver 是一个自动化测试工具,它可以模拟用户的行为来与网页交互。要想使用 WebDriver 进行自动化测试,需要首先定位到网页上的元素,然后才能对其进行操作。元素定位是 WebDriver 中...
【元素定位工具】是一种在自动化测试中非常关键的辅助软件,尤其当SDK自带的uiautomatorviewer.bat无法满足特定的元素定位需求时,它便显得尤为重要。在移动应用自动化测试领域,准确、高效地定位到UI元素是编写测试...
本文将详细讲解如何利用Selenium进行元素定位、鼠标动作以及浏览器操作,并封装成常用的工具类,以提高自动化测试的效率和可维护性。 一、元素定位方法 1. `By.ID`:通过元素的ID来定位,ID是页面上每个元素的唯一...
Appium 元素定位 Appium 元素定位是 App 自动化测试中的一个重要环节。在 App 自动化测试过程中,元素定位是最重要的一个步骤,只有准确定位到了元素才能进行相关元素的操作,如输入、点击、拖拽、滑动等。Appium ...
CSS 元素定位教程 一、什么是 CSS 元素定位? CSS 元素定位是指在 HTML 文档中对元素的位置进行控制和设置的过程。通过使用 position 属性,可以将元素定位到特定的位置,以实现布局和设计的需求。 二、position ...
【WEB自动化测试基础01-元素定位】是关于使用Selenium进行网页自动化测试的一个关键话题。Selenium 是一款强大的浏览器自动化工具,广泛用于网页应用的功能测试。以下将详细阐述各个定位方式及其应用场景。 1. ID...
selenium+java操作UI时,对界面元素进行定位与操作及实例
Selenium + Python(元素定位) Selenium 是一种自动化测试工具,主要用于 Web 应用程序的自动化测试,但它也支持所有基于 web 的管理任务自动化。Selenium 经历了两个版本,selenium1.0 和 selenium2.0,它不是一...
**Ranorex Selocity 1.4.3:Web元素定位神器** Ranorex Selocity是一款强大的Web元素定位插件,专为谷歌浏览器设计,旨在帮助开发者和测试工程师高效地查找、识别和操作网页上的元素。在这个数字化时代,前端开发和...
本文详细讲解了 CSS 中多种元素定位的方法及其应用场景,具体涉及静态定位(static),相对定位(relative),绝对定位(absolute),固定定位(fixed)以及粘性定位(sticky),同时解释了每种定位方式的工作机制和相关属性...
本文档详细讲解了CSS元素定位的各种方式及其应用场景。涵盖了五种定位模式:标准流、相对定位、绝对定位、固定定位和粘性定位。首先介绍了各个定位类型的定义和特点,在此基础上讨论了不同定位方式的操作方法、具体...
在本文中,我们将深入探讨 UIAutomator 元素定位的基本概念、优点以及如何在 Python 中通过 Appium 框架来实现定位。 首先,UIAutomator 元素定位的优势在于它的高效性和稳定性。相比于 xpath,UIAutomator 提供了...
【H5元素定位1】- 知识点详解 在移动应用开发中,尤其是在混合开发模式下,常常会遇到内嵌H5页面的情况。这些页面的元素定位与原生Android控件的定位方式有所不同,主要涉及到上下文(Context)的概念。本文将详细...
为了更好地学习WebDriver的八种定位元素的方式,我们使用附件中的注册页面来练习自动化脚本的设计。 博文链接:https://blog.csdn.net/weixin_44679832/article/details/103807698
### Selenium IDE 与 元素定位 #### 一、Selenium 组件介绍 ##### 1\. Selenium IDE - **简介**:Selenium IDE 是 Firefox 的一个插件,它支持在 Firefox 浏览器中录制和回放自动化测试脚本。此外,还可以将录制的...
在Selenium自动化测试中,元素定位是至关重要的技能,它允许我们找到网页上的特定元素进行交互,如点击、填写表单等操作。本篇将详细讲解Selenium中的几种主要元素定位方法,包括ID定位、ClassName定位和Name定位。 ...