Selenium学习一 页面元素定位

原创 2015年07月15日 10:18:09
最近在学习selenium自动化,开始写一些脚本,写了有一段时间了,发现前期写的脚本都是语言堆积,不太利于后期维护,且有很多相同功能的代码在一直不停被重复写,有很多冗余代码,于是就把之前的写的东西推倒重来,想写一些公用的方法,这样会省很多事情,易于维护,且效率高。本次要介绍的方法是selenium+java根据id、name、classname、tagname、linktext、partialLinkText和xpath共7中方法定位元素,并对元素进行点击、清空和赋值3种操作,此方法为公用方法,通用。

import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;

public class ElementOprate {

	public static WebElement element;
	public static int FLAG_CLICK = 1;// 点击事件
	public static int FLAG_SENDKEYS = 2;// 赋值事件
	public static int FLAG_CLEAR = 3; // 清空事件

	/**
	 * 根据id名称查找按钮 @
	 */
	public static void testBtnID(String testid, String content, int flag) {
		element = OpenBrowser.dr.findElement(By.id(testid));
		/**
		 * 对每一个页面元素有3个基本事件:点击、赋值、清空,把这3个事件附属给每一个元素,
		 * 元素通过传递不同的参数调用不同的值,如1点击、2赋值、3清空
		 */
		switch (flag) {
		case 1:
			element.click();
			break;
		case 2:
			element.sendKeys(content);
			break;
		case 3:
			element.clear();
			break;
		default:
			System.out.println("the input flag:" + flag
					+ "is wrong. 1:click 2:sendkeys 3:clear");
			break;
		}
	}

	/**
	 * 根据name名称查找按钮 @
	 */
	public static void testBtnName(String testname, String content, int flag) {
		element = OpenBrowser.dr.findElement(By.name(testname));
		switch (flag) {
		case 1:
			element.click();
			break;
		case 2:
			element.sendKeys(content);
			break;
		case 3:
			element.clear();
			break;
		default:
			System.out.println("the input flag:" + flag
					+ "is wrong. 1:click 2:sendkeys 3:clear");
			break;
		}
	}

	/**
	 * 根据class属性名称查找按钮 @
	 */
	public static void testBtnClass(String testclass, String content, int flag) {
		element = OpenBrowser.dr.findElement(By.className(testclass));
		switch (flag) {
		case 1:
			element.click();
			break;
		case 2:
			element.sendKeys(content);
			break;
		case 3:
			element.clear();
			break;
		default:
			System.out.println("the input flag:" + flag
					+ "is wrong. 1:click 2:sendkeys 3:clear");
			break;
		}
	}

	/**
	 * 根据html标签查找按钮(支持模糊查询) @
	 */
	public static void testBtnTagName(String testtagname, String content,
			int flag) {
		element = OpenBrowser.dr.findElement(By.tagName(testtagname));
		switch (flag) {
		case 1:
			element.click();
			break;
		case 2:
			element.sendKeys(content);
			break;
		case 3:
			element.clear();
			break;
		default:
			System.out.println("the input flag:" + flag
					+ "is wrong. 1:click 2:sendkeys 3:clear");
			break;
		}
	}

	/**
	 * 根据按钮文本名称查找按钮(不支持模糊查询) @
	 */
	public static void testBtnLinkText(String testLinkText, String content,
			int flag) {
		element = OpenBrowser.dr.findElement(By.linkText(testLinkText));
		switch (flag) {
		case 1:
			element.click();
			break;
		case 2:
			element.sendKeys(content);
			break;
		case 3:
			element.clear();
			break;
		default:
			System.out.println("the input flag:" + flag
					+ "is wrong. 1:click 2:sendkeys 3:clear");
			break;
		}
	}

	/**
	 * 根据按钮文本名称查找按钮(支持模糊查询) @
	 */
	public static void testBtnPartialLinkText(String testPartialLinkText,
			String content, int flag) {
		element = OpenBrowser.dr.findElement(By
				.partialLinkText(testPartialLinkText));
		switch (flag) {
		case 1:
			element.click();
			break;
		case 2:
			element.sendKeys(content);
			break;
		case 3:
			element.clear();
			break;
		default:
			System.out.println("the input flag:" + flag
					+ "is wrong. 1:click 2:sendkeys 3:clear");
			break;
		}
	}

	/**
	 * 根据XPath查找按钮(表达式"标签层级[@元素信息]":"//input[@id='OpenBrowserId']") @
	 */
	public static void testBtnXPath(String testxpath, String content, int flag) {
		element = OpenBrowser.dr.findElement(By.xpath(testxpath));
		switch (flag) {
		case 1:
			element.click();
			break;
		case 2:
			element.sendKeys(content);
			break;
		case 3:
			element.clear();
			break;
		default:
			System.out.println("the input flag:" + flag
					+ "is wrong. 1:click 2:sendkeys 3:clear");
			break;
		}
	}

}

【selenium学习笔记】webdriver进行页面元素定位

进行Web页面自动化测试,对页面上的元素进行定位和操作是核心。而操作又有时以定位为前提的,因此,对页面元素的定位是进行自动化测试的基础。 页面上的元素就像人一样,有各种属性,比如元素名字,元素id,元...

selenium+python自动化测试(三)--页面元素定位

上一篇博客selenium+python自动化测试(二)–使用webdriver操作浏览器讲解了使用webdriver操作浏览器的各种方法,可以实现对浏览器进行操作了,接下来就是对浏览器页面中的元素进...

java selenium webdriver实战 页面元素定位

自动化测试实施过程中,测试程序中常用的页面操作有三个步骤 1.定位网页上的页面元素,并存储到一个变量中 2.对变量中存储的页面元素进行操作,单击,下拉或者输入文字等 3.设定页面元素的操作值,比...

Selenium-CSS页面元素定位

CSS 可以比较灵活选择控件的任意属性,一般情况下定位速度要比 XPath 快,但对于初学者来说比较难以学习使用,下面我们就详细的介绍 CSS的语法与使用。 html> body> ...

[python爬虫] Selenium常见元素定位方法和操作的学习介绍

这篇文章主要Selenium+Python自动测试或爬虫中的常见定位方法、鼠标操作、键盘操作介绍,希望该篇基础性文章对你有所帮助,如果有错误或不足之处,请海涵~ 一.定位元素方法 二.操作元素方法 ...

selenium webdriver 学习总结-元素定位

webdriver提供了丰富的API,有多种定位策略:id,name,css选择器,xpath等,其中css选择器定位元素效率相比xpath要高些,使用id,name属性定位元素是最可靠,效率最高的一...

Selenium webdriver 学习总结-元素定位

Selenium webdriver 学习总结-元素定位 webdriver提供了丰富的API,有多种定位策略:id,name,css选择器,xpath等,其中css选择器定位元素效率相比xpa...

Selenium + Webdriver 学习(五) frame下元素定位

有时候我们在定位一个页面元素的时候发现一直定位不了,反复检查自己写的定位器没有任何问题,代码也没有任何问题。这时你就要看一下这个页面元素是否在一个iframe中,这可能就是找不到的原因之一。如果你在一...

selenium webdriver 学习总结-元素定位(一)

webdriver提供了丰富的API,有多种定位策略:id,name,css选择器,xpath等,其中css选择器定位元素效率相比xpath要高些,使用id,name属性定位元素是最可靠,效率最高的一...

Selenium + Webdriver 学习(四) 元素定位方法

selenium-webdriver提供了强大的元素定位方法,支持以下三种方法。 单个对象的定位方法 多个对象的定位方法 层级定位                         定位单个元素 在定位...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Selenium学习一 页面元素定位
举报原因:
原因补充:

(最多只允许输入30个字)