Selenium-java(XML-元素管理篇)

来源:互联网 发布:2016年鞍山中考大数据 编辑:程序博客网 时间:2024/05/29 09:42

Selenium-java(XML-元素管理篇)

有效的对页面元素管理有利于脚本的维护,避免修改代码引起不必要的麻烦。这里我使用到了xml对元素的管理。

<?xml version="1.0" encoding="UTF-8"?><!--登录页面元素--><LoginEleData>    <!--账号输入框-->    <property name="name_input" type="id" value="textfield-1009-inputEl"/>    <!--密码输入框-->    <property name="pwd_input" type="id" value="textfield-1010-inputEl"/>    <!--保存密码勾选框-->    <property name="save_pwd" type="id" value="checkbox-1013-inputEl"/>    <!--登录按钮-->    <property name="login_button" type="id" value="loginBtn-btnEl"/></LoginEleData>

这是一个举例的xml文件,我把各个元素信息写入其中。开始解析首先需要导入dom4j包。在maven项目pom文件中导入jar包。

<!-- https://mvnrepository.com/artifact/dom4j/dom4j -->        <dependency>            <groupId>dom4j</groupId>            <artifactId>dom4j</artifactId>            <version>1.6.1</version>        </dependency>        <dependency>            <groupId>xml-apis</groupId>            <artifactId>xml-apis</artifactId>            <version>1.4.01</version>        </dependency>

开始封装获得元素方法了。

import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.io.SAXReader;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.net.URL;public class Dom4j {    private String file;    public Document document;    private InputStream input = null;    private Map<String,String[]> eles;    public Dom4j(String file) {        this.file = file;        ClassLoader classLoader = Dom4j.class.getClassLoader();        URL resource = classLoader.getResource(file);        String path = resource.getPath();        try {            input = new FileInputStream(path);        } catch (FileNotFoundException e) {            e.printStackTrace();            System.out.println("打开文件错误");        }        // 创建saxReader对象        SAXReader reader = new SAXReader();        // 通过read方法读取一个文件 转换成Document对象        try {            document = reader.read(input);        } catch (DocumentException e) {            e.printStackTrace();        }    }  /**     * 提供关闭文件方法     */    public void close() {        try {            input.close();        } catch (IOException e) {            e.printStackTrace();            System.out.println("关闭文件错误");        }    }    /**     *提供一个从xml文件获取ele数组的方法     * @return Map集合 通过name获取数组values     * 数组第一位为类型   第二位为类型值     */    private Map<String,String[]> setele() {        Iterator<Element> elements;        Element property = null;        eles = new HashMap<String, String[]>();        //获取根节点元素对象        Element node = super.document.getRootElement();        //获得一个element列表迭代器        elements = node.elements("property").iterator();        while (elements.hasNext()) {            property = elements.next();            String[] ele =new String[2];            ele[0] = property.attributeValue("type");            ele[1] = property.attributeValue("value");            eles.put(property.attributeValue("name"),ele);        }        close();        return eles;    }    /**     * 提供一个获取element元素集合     * @return Map集合 通过name获取数组values     * 数组第一位为类型   第二位为类型值     */    public Map<String,String[]> getele() {        return this.setele();    }

然后让我们开始获取页面的元素了。

0 0
原创粉丝点击