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命令之定位页面元素

定位页面元素 对于很多selenium命令,target域是必须的。Target在web页面范围内识别UI元素,它使用locatorType=location的格式。在很多情况下,locatorTy...
  • fnngj
  • fnngj
  • 2013年02月21日 09:42
  • 1388

selenium+Java页面元素定位方法

页面元素定位方法总结WebDriver对象的findElement函数可以用于定位一个页面的元素,findElement可以用于定位多个页面的元素,定位到页面元素需使用webElement对象进行存储...
  • darcy_wyl
  • darcy_wyl
  • 2018年01月21日 14:28
  • 26

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

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

selenium元素定位(Java)

1.使用findElement方法定位元素
  • qq_27976405
  • qq_27976405
  • 2015年12月22日 14:53
  • 997

Selenium+Webdriver 常用的元素定位方式

Selenium+Webdriver元素定位
  • bananasssss
  • bananasssss
  • 2016年05月05日 10:15
  • 6900

selenium页面元素定位方法

selenium中元素的定位是很关键的,定位不准,也就无法操作页面元素,自动化也是白搭,现在让我们来了解一下selenium的定位方法, 方法 语法 描述 id driver.findEl...
  • zhengshaolong8125
  • zhengshaolong8125
  • 2017年09月10日 17:00
  • 176

selenium WebDriver定位元素学习总结

定位元素先要掌握基本的HTML语法: http://blog.csdn.net/jojoy_tester/article/details/53222425 http://blog.csdn.net/...
  • JOJOY_tester
  • JOJOY_tester
  • 2016年12月08日 23:15
  • 8510

webdriver定位页面元素插件-WebDriver Element Locator

在使用webdriver进行web自动化测试时,需要定位大量的页面元素,除了使用Firebug和FirePath插件外,可以安装这个火狐插件-WebDriver Element Locator 通过...
  • russ44
  • russ44
  • 2016年09月06日 12:38
  • 3575

自动化测试工具selenium常见的元素定位方法

本文主要介绍selenium定位元素常用的几种方法 selenium操作浏览器步骤: 查找元素属性----通过元素属性执行相关操作 元素常见的属性: id,name,class,link_text,x...
  • qq_19318079
  • qq_19318079
  • 2016年01月23日 23:54
  • 2611

【Selenium】webdriver进行页面元素定位

进行Web页面自动化测试,对页面上的元素进行定位和操作是核心。而操作又是以定位为前提的,因此,对页面元素的定位是进行自动化测试的基础。 页面上的元素就像人一样,有各种属性,比如元素名字,元素id...
  • Hk_john
  • Hk_john
  • 2017年10月17日 14:59
  • 60
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Selenium学习一 页面元素定位
举报原因:
原因补充:

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