实践助梦想成长

测试成长记

Selenium学习一 页面元素定位

最近在学习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 java
个人分类: selenium java
上一篇Selenium2.0功能测试之Alert/Confirm/Prompt的处理(Java版)
下一篇缺陷理解问题(工作反思一)
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭