【发布时间】:2014-11-05 13:22:20
【问题描述】:
我目前正在使用带有 Java 和 TestNG 的 Selenium WebDriver 框架。我正在使用属性文件通过为每个元素提供唯一名称来保留我的所有元素定位器。如何使用 xml 文件来保存我所有的元素定位器以及如何在我的自动化脚本中获取这些定位器?
提前致谢!!
【问题讨论】:
标签: xml object webdriver repository
我目前正在使用带有 Java 和 TestNG 的 Selenium WebDriver 框架。我正在使用属性文件通过为每个元素提供唯一名称来保留我的所有元素定位器。如何使用 xml 文件来保存我所有的元素定位器以及如何在我的自动化脚本中获取这些定位器?
提前致谢!!
【问题讨论】:
标签: xml object webdriver repository
您可以使用 XML 作为对象存储库,如
<ObjRep>
<url>http://www.google.com</url>
<search_TxtFld>q</search_TxtFld>
<submt>btnG</submt>
</ObjRep>
您可以使用代码从 xml 中检索对象 下面是代码:
public void objRepository(String eleName){
try{
File file=new File("F:\\Test.xml");
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db=dbf.newDocumentBuilder();
Document doc=db.parse(file);
doc.getDocumentElement().normalize();
//System.out.println("The node name is: "+doc.getDocumentElement().getNodeName());
NodeList nList=doc.getElementsByTagName("ObjRep");
//System.out.println("The length is: "+nList.getLength());
for(int i=0; i<nList.getLength(); i++){
Node nNode=nList.item(i);
if(nNode.getNodeType()==Node.ELEMENT_NODE){
Element ele=(Element) nNode;
System.out.println(ele.getElementsByTagName(eleName).item(i).getTextContent());
}
}
}catch(Exception e){
e.printStackTrace();
}
}
你可以使用 as
WebDriver d = new FirefoxDriver();
d.get(objRepository(url));
d.findelement(by.name(objRepository(search_TxtFld)).sendkeys("test");
d.findelement(by.name(search_TxtFld(submt)).click();
【讨论】:
如果您使用属性文件来存储定位器,您不能只使用 Java 接口将属性读入变量并让脚本引用接口中的变量吗?
【讨论】: