0
我想创建一个测试,我检查页面中是否存在所有必需的元素。我有JSON文件名为json.data其右NOE看起来是这样的:如何从json获取动态路径?
{
"perfTest": {
"input":"abc",
"outputs":["a","b","c"],
"elemAndXpath": ["Login","password","submit"]
}
}
}
我的测试是这样的:
it("should check that required elements are present", function() {
var elemNames = data.perfTest.elemAndXpath);
elemNames.forEach(function(elemName){
//search on the page that the specified elem is present
expect(element(by.xpath("//div[.='" + elemName + "']")).isPresent()).toBe(true);
});
});
现在这个工作,如果所有的人都可以找到我的定位器,其在相似路径。我需要使这个测试能够从json文件中获取使用的定位器路径。所以,我现在的JSON文件如下所示:
{
"perfTest": {
"input":"abc",
"outputs":["a","b","c"],
"elemAndXpath": {
"Login":"by.id('login')",
"password":"by.id('pass')",
"submit":"by.xpath(//button)"
}
}
}
我无法为此json文件编写测试。问题是由于最后一把钥匙的动态特性造成的。请帮我解决一下这个。
实际上没有......测试我写了'elemAndXpath'中的所有密钥。现在,当我想遍历所有的键并获得相应的值时,它不会为我工作。 – Ravi
除非你需要其他东西的钥匙,你可以放下它们,并将by.x字符串作为数组中的项目,那么我相信上面的方法就行了。否则,在对象上执行for循环并执行相同的操作。 – jdgower
是的,我也需要钥匙。我尝试了for循环的事情。我使用Object获得了所有的键。我用for循环来遍历键,但无法获得它们的值 – Ravi