想问下你的多设备并行是怎么做的
—— 来自 TesterHome 官方 安卓客户端
学习了。
—— 来自 TesterHome 官方 安卓客户端
#16 楼 @seveniruby 我拓展了下支持 YAML 管理对象库,解析了下 YAML,感觉 YAML 可读性可能是比 XML 高,也看个人习惯,但解析起来并没有 XML 方便,过程也跟解析 XML 差不多,主要可能是因为 java 的数据类型问题,如果是用 python 解析应该会方便很多。也不知道是不是因为我没用好
/**
*
* @param path 对象库文件地址
* @param pageName pageName 页面名字
* @return 返回locator 哈希表 locatorName:locator
*/
public Map<String,Locator> getLocatorMap(String path,String pageName) throws FileNotFoundException, YamlException {
Map<String,Locator> locatorHashMap=new HashMap<>();
YamlReader yamlReader=new YamlReader(new FileReader(path));
Object yamlObject=yamlReader.read();
Map yamlMap=(Map) yamlObject;
ArrayList<HashMap<String,Object>> pages=(ArrayList<HashMap<String,Object>>)yamlMap.get("pages");
for (int i=0;i<pages.size();i++)//遍历Page节点
{
HashMap<String,Object> pageNode=pages.get(i);//获取page节点
HashMap<String,Object> pageElement=(HashMap<String,Object>)pageNode.get("page");
if (pageElement.get("pageName").toString().equalsIgnoreCase(pageName))//判断是否需要获取的Page节点
{
// System.out.println(pageElement.get("desc"));
List<HashMap<String,Object>> locators=(List<HashMap<String,Object>>)pageElement.get("locators");//获取locators列表
for (int j=0;j<locators.size();j++)//遍历locators列表
{
HashMap<String,Object> locatorNode=locators.get(j);
Locator locator=new Locator();
locator.setType(getByType(locatorNode.get("type").toString()));
locator.setValue(locatorNode.get("value").toString());
locator.setTimout(Integer.parseInt(locatorNode.get("timeout").toString()));
locator.setLocatorName(locatorNode.get("name").toString());
locatorHashMap.put(locatorNode.get("name").toString(),locator);
}
}else {continue;}
// System.out.println(pageObjet);
}
System.out.println(locatorHashMap.get("登录").getLocalorName());
return locatorHashMap;
}
#2 楼 @seveniruby 感谢你的建议!是我自己开发的,这个已经开源到 github 了,只是考虑到 github 是国外的服务器比较慢,所以在开源中国放了一份,yaml 确实可以考虑,之所以采用 xml 主要考虑到它的通用性。 呵呵,markdown,昨天也是编辑了几次才搞定,还是有些换行没搞好