1
<script> jQuery(function()
{jQuery("#chart").kendoChart({"chartArea":{"background":"#f7f7f7"}
"title":{"position":"top"}
"legend":{"visible":false}
"series":[{"name":"Consumption"
"color":"#0000FF"
"type":"column"
"data":["1320649","1301971","1312053","0","0","0","0"]}]
"seriesDefaults":{"column":{"stack":true}}
"categoryAxis":[{"labels":{"rotation":360
"visible":true}
"majorGridLines":{"visible":false}
"line":{"visible":false}
"title":{"text":"Date"}
"categories":["08/10 \n Mo"
"08/11 \n Tu"
"08/12 \n We"
"08/13 \n Th"
"08/14 \n Fr"
"08/15 \n Sa"
"08/16 \n Su"]}]
"valueAxis":[{"labels":{"format":"n0"}
"line":{"visible":false}
"title":{"text":"G"}}]
"tooltip":{"template":"#=kendo.toString(parseFloat(value)
 \u0027n0\u0027)#"
"visible":true}});}); 

This data is generating SVG charts.

This code is inside HTML. Also the values above are "," separated like title,legend,series etc.

I want the data from the data string. It has daily consumption values. I want each of them so that I can apply assert to check the success.

How can I get the number in some variable in my java code (webdriver)

Thanks in Advance

asked Aug 17, 2015 at 10:22

1 Answer 1

0

I first took the the above data in a string. then i used the regex to extract the

 "data":["1320649","1301971","1312053","0","0","0","0"]}]

part. After this i again used the regex to extract the numbers only and so on and so forth. It was tedious but it worked good.

I took regex according so that on any day if the string changes some how my code should be able to handle it.

Here is my code :

 WebElement ele = driver.findElement(By.xpath("//div[@id='statictics-chart-enforce-reload-wrapper']/script[1]"));
 String str = ele.getAttribute("innerHTML");
 String mydata = str;
 Pattern pattern = Pattern.compile("data\":\\[(.*?)]");
 Matcher matcher = pattern.matcher(str);
 if (matcher.find())
 {
 System.out.println(matcher.group(1));
 mydata=matcher.group(1);
 }
 String arr[] = mydata.split(",");
 for(int i=0;i<7;i++)
 {
 day[i]=Integer.parseInt(arr[i].replace("\"",""));
 System.out.println(day[i]);
 }

This way I am able to get the values.

Do let me know if any one has a more simpler version.

Thanks in Advance

answered Aug 18, 2015 at 12:12

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.