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

被折叠的 条评论
为什么被折叠?



