这是一个医院应用程序,我的硒测试添加了一个新设施。添加设施所需的数据(例如:设施名称,设施地址等)存储为JSON文件,直到此处为止。我已经设法添加了设施,但是现在添加设施之后,我必须验证添加的设施是否正确,设施的名称和地址是否与JSON文件中的数据匹配。我已经写了一个代码,但是错误为
“ java.lang.ClassCastException:org.json.simple.JSONArray类无法转换为org.json.JSONObject类(org.json.simple.JSONArray和org.json.JSONObject位于加载程序“ app”的未命名模块中')“
My verification method is :
public void verifyNewFacility2() throws FileNotFoundException, IOException,ParseException {
String Name,Description;
JSONParser parser = new JSONParser();
Object obj=parser.parse(new FileReader("C:\\selenium-protect\\src\\test\\resources\\scripts\\Facility\\AddNewFacilityDetailsSection.json"));
JSONObject jsonObject = (JSONObject) obj;
Name = (String) jsonObject.get("Selenium-Facility");
Description = (String) jsonObject.get("Test Facility created by Selenium");
WebElement nameElement =driver.findElement(By.xpath("//div[@class='col-12']//following::div[1]//following::h3"));
String message = nameElement.getText();
Assert.assertEquals(message, Name);
WebElement descriptionElement =driver.findElement(By.xpath("//div[@class='col-12']//following::div[1]//following::p"));
String message1 = descriptionElement.getText();
Assert.assertEquals(message1, Description);
}
答案 0 :(得分:0)
尝试这样做:
JSONArray jsonArray = (JSONArray) obj;
JSONObject jsonObject = jsonArray.getJSONObject(0);
String Name = (String) jsonObject.get("name");
String Description = (String) jsonObject.get("value");
....
这将只提供第一个JSONObject,就像我们拍摄的getJsonObject(0)
一样,您可以遍历整个JSONArray以获取所有对象