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对象进去!!!