Selenium学习笔记之外部化相关测试数据---xml

简介: 我们也可以用xml来定义一个信息更为丰富的UIMap.xml文件,比如,额外还添加控件所属的页,控件的类型,然后解析构建一个XMLParser类来读取相应的值。 1 2 3 4 5 6 7 8 9 10 ...

我们也可以用xml来定义一个信息更为丰富的UIMap.xml文件,比如,额外还添加控件所属的页,控件的类型,然后解析构建一个XMLParser类来读取相应的值。

 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <UIMap>
 3   <Object ID="User Name">
 4     <Attributes Locator="userName" Page="Main Page" Type="Button"/>
 5   </Object>
 6   
 7   <Object ID="Password">
 8     <Attributes Locator="Password" Page="Main Page" Type="Button"/>
 9   </Object>
10 </UIMap>

相应的解析xml的代码:

 1     public static String getLocator(String locatorID){
 2         InputStream ins=Thread.currentThread().getContextClassLoader()
 3             .getResourceAsStream(FileConstants.XMLFILE_NAME);
 4         if(ins==null){
 5             System.out.println("Missing UIMap.xml file.");
 6             return null;
 7         }
 8         
 9         DocumentBuilderFactory fac=DocumentBuilderFactory.newInstance();
10         DocumentBuilder builder=null;
11         try {
12             builder = fac.newDocumentBuilder();
13         } catch (ParserConfigurationException pce) {
14             System.out.println("Failing to new DocumentBuilder for runtime exception.");
15             throw new RuntimeException(pce);
16         }
17         
18         Document xmlDoc=null;
19         try {
20             xmlDoc = builder.parse(ins);
21         } catch (SAXException se) {
22             System.out.println("Failing to parse xml file for runtime exception.");
23             throw new RuntimeException(se);
24         } catch (IOException ie) {
25             System.out.println("Failing to parse xml file for runtime exception.");
26             throw new RuntimeException(ie);
27         }
28         
29         XPathFactory pathFac=XPathFactory.newInstance();
30         XPath xpath = pathFac.newXPath();
31         
32         XPathExpression exp=null;
33         try {
34             exp = xpath.compile("UIMap/Object[@ID='"+locatorID+"']/Attributes");
35         } catch (XPathExpressionException e) {
36             System.out.println("Failing to get locator for :"+locatorID);    
37         }
38         Node node=null;
39         try {
40             node = (Node)exp.evaluate(xmlDoc, XPathConstants.NODE);
41         } catch (XPathExpressionException e) {
42             
43             e.printStackTrace();
44         }finally{
45             try{
46                 if(ins!=null){
47                     ins.close();
48                 }
49             }catch(Exception ex){
50                 System.out.println("Failing to load UIMap.xml for runtime exception.");
51                 throw new RuntimeException(ex);
52             }
53         }
54         
55         return node.getAttributes().getNamedItem("Locator").getNodeValue();
56     }

测试代码:

1 selenium.type(UIMapParser.getLocator("UserName"), "seleniumtest");
2 selenium.type(UIMapParser.getLocator("Password"), "seleniumtest");

 


img_42a4adae4716d0e15c3eeaabfd040044.png

注:转载需注明出处及作者。

流柯      

目录
相关文章
|
18天前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
70 19
Selenium IDE:Web自动化测试的得力助手
|
20天前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
126 17
Selenium:强大的 Web 自动化测试工具
|
2天前
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
26 10
|
1月前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法。本文介绍 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,同时提供 Python 实现示例,强调其在确保项目性能和用户体验方面的关键作用。
36 6
|
1月前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目效果的重要手段
在数据驱动时代,A/B 测试成为评估机器学习项目效果的重要手段。本文介绍了 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,强调了样本量、随机性和时间因素的重要性,并展示了 Python 在 A/B 测试中的具体应用实例。
30 1
|
2月前
|
测试技术
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
本文介绍了如何使用Pytest和Allure生成自动化测试报告。通过安装allure-pytest和配置环境,可以生成包含用例描述、步骤、等级等详细信息的美观报告。文章还提供了代码示例和运行指南,以及重构项目时的注意事项。
298 1
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
|
2月前
|
存储 测试技术 数据库
数据驱动测试和关键词驱动测试的区别
数据驱动测试 数据驱动测试或 DDT 也被称为参数化测试。
37 1
|
2月前
|
机器学习/深度学习 监控 计算机视觉
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
本文介绍了如何使用YOLOv7进行目标检测,包括环境搭建、数据集准备、模型训练、验证、测试以及常见错误的解决方法。YOLOv7以其高效性能和准确率在目标检测领域受到关注,适用于自动驾驶、安防监控等场景。文中提供了源码和论文链接,以及详细的步骤说明,适合深度学习实践者参考。
624 0
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
2月前
|
机器学习/深度学习 并行计算 数据可视化
目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
这篇文章介绍了如何使用PaddleClas框架完成多标签分类任务,包括数据准备、环境搭建、模型训练、预测、评估等完整流程。
178 0
|
2月前
|
机器学习/深度学习 数据采集 算法
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
这篇博客文章介绍了如何使用包含多个网络和多种训练策略的框架来完成多目标分类任务,涵盖了从数据准备到训练、测试和部署的完整流程,并提供了相关代码和配置文件。
69 0
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)

热门文章

最新文章