Selenium学习一 页面元素定位

本文介绍使用Selenium+Java实现根据多种条件定位元素,并提供了点击、清空和赋值三种常见操作的公用方法,提高代码复用性和维护效率。
最近在学习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;
		}
	}

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值