我收到错误java.lang.ClassCastException:

时间:2019-07-19 10:17:20

标签: java json selenium selenium-webdriver

这是一个医院应用程序,我的硒测试添加了一个新设施。添加设施所需的数据(例如:设施名称,设施地址等)存储为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);

        }

1 个答案:

答案 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以获取所有对象