Identifying Graphs (Core plot) using Appium tool for Ui Automation

Hey guys , i am working on writing java scripts for ui automating the app . In my app there is a graph Screen . I used core plot to create it . So is there a way to identify the X-Axis or Y-Axis or do any Ui automaion guestures on the Graph . I am really stuck as Appium tool does not idetify the graph as native elements . Even in the appium Inspector i can see the graph by no way to capture its instance (either by xPath , AccessibilityLabel or Title) . A little help would be appreciated … is there any other tool which identify graph and allow for ui automation .

PS: I need to check if the number i am passing on the scatterPlot or Bargraph has been ploted or not .

I don’t think you can automate that. You have multiple UIAImages, which are not automatable the way you want.

Hey Kirill Sorry to ask you … But are you the official Appium support … I am asking this because , before i could give a concrete reply to my superiors i need to be sure that this is something can not be doable …

I thing the Xaxis and the Y axis and the CPPlot are subclass of CALayer … So I was trying to set accesibility Label to them …

CPTXYAxisSet axisSet = (CPTXYAxisSet )newGraph.axisSet;
CPTXYAxis *x = axisSet.xAxis;
x.axisLineStyle = nil;
x.majorTickLineStyle = nil;
x.minorTickLineStyle = nil;
x.majorIntervalLength = CPTDecimalFromDouble(5.0);
x.orthogonalCoordinateDecimal = CPTDecimalFromDouble(0.0);
x.title = @“X Axis”;
x.titleLocation = CPTDecimalFromFloat(7.5f);
x.titleOffset = 55.0;

[x setIsAccessibilityElement:YES];
[x setAccessibilityLabel:@"X"];

[axisSet setIsAccessibilityElement:YES];
[axisSet setAccessibilityLabel:@"CPTXYAxisSet"];

But appium can not recognize and says element with this name can not be found .

So is suppose if we can set an accesibility Label to them and make appium recognize it then we are good … I got an answer from this link that it can be doable … but How i dont know

So i am desperately trying different permutation and combination to get this done

Can this below document be helpful :person_frowning:

Making Your iOS App Accessible

I am not official support.
To make sure, which element on your screenshot is the graph? Some of the UIAImages?
Can you provide page source which Appium is able to recognize? There is method for that:

  • Java: driver.getPageSource()
  • Ruby: $driver.page_source
  • etc.

No the Blue and Green Line are the graphs . And I want to make a touch guesture on the X and Y axis (in all Bar , Pie or Scatter) …

This is the Full UI Xml that the Appium is able to recognise in the Appium inspector .

GraphScreen.txt (5.2 KB)

PS: This is a demo app using corePlot on which i am doing R&D . I cant give screen shot of the app i am working because of security issues.

What does driver.getPageSource() do ?? How could this be helpful … I suppose its just give the whole screen XML which i have already copied above .

That’s what I am saying. I see that your graph is two UIAImage nodes. If you are trying to find points on your graph as an elements, I don’t think you can do it.