1、简介
用过selenium的或许知道,WebDriver中的WebElement只有一个GetAttribute方法,没有增加、删除、修改属性的方法,只有一个获取属性的方法.
那么我们要处理这个情况呢?
答案当时是借助JS代码来实现!!!
2、实现
把增加、删除、更新属性封装为方法调用
- 获取属性
WebElement中就有方法可以获取属性
getAttribute()
- 增加、修改属性(如修改就传修改的属性名)
/**
* 在Element元素上新增加或修改属性
* @param element 传入要增加元素的WebElement
* @param AttributeName
* @param value
* @return
*/
public boolean addAttribute(WebElement element,String AttributeName,String value)
{
((JavascriptExecutor) driver).executeScript("arguments[0].setAttribute(arguments[1],arguments[2])", element, AttributeName, value);
return true;
}
- 删除属性
/**
* 在Element元素上新增加属性
* @param element 传入要增加元素的WebElement
* @param AttributeName
* @param value
* @return
*/
public boolean removeAttribute(WebElement element,String AttributeName,String value)
{
((JavascriptExecutor) driver).executeScript("arguments[0].removeAttribute(arguments[1],arguments[2])", element, AttributeName, value);
return true;
}
3、其他实用的JS方法
- 当按钮不能点击的情况下,用js点击
((JavascriptExecutor) driver).executeScript("arguments[0].click()", element);
- 刷新浏览器
((JavascriptExecutor) driver).executeScript("history.go(0)");
注:代码中的driver是为WebDriver,因为我是封装在一个类文件中,所以是调用类中的driver。请根据自己需求是否要传一个WebDriver对象进去!!!