如何从 selenium webdriver c# 使用 angular JS 构建的折线图中获取值?
How to take values from a line graph built using angular JS by selenium webdriver c#?
我有一个使用 angular 构建的图表 js.This 是我检查图表元素时得到的结果。
<canvas
ng-reflect-datasets="[object Object]"
ng-reflect-labels="blahblah"
ng-reflect-options="[object Object]"
ng-reflect-chart-type="line"
ng-reflect-colors="[object Object]"
ng-reflect-legend="true">
</canvas>
图中的线条有适当的工具提示和数据。
有人可以指导我如何获取值/工具提示值吗?
CANVAS 标签就像页面中的小程序,不包含其中显示的 HTML,因此无法正常交互。您可以使用 .MoveToElement(element, offsetX, offsetY)
移动光标、单击和悬停等操作,但这不是确定性的。如果内容发生变化,您将一无所知,因为它都是基于位置而不是基于元素的。最好的办法是与开发人员交谈,如果您可以访问他们,让他们为您构建一个 API,您可以使用它来访问 CANVAS 的内部结构并以这种方式进行测试.
我刚开始为 Java 使用 ngWebDriver,我知道您可以在 C# 中使用 Protractor.NET。
您可以使用 ngWebDriver "ByAngular" 定位器获取您提到的 ng-* 元素。
例如,这是这样一个元素的样子:
<select ng-model="operator" class="bla bla"/>
driver.findElement(ByAngular.model("operator"))
在 java 中,如果你使用 ChartJS,我会使用它:
String javaScript ="var puntos=Chart.instances[0].data.datasets[0].data; return puntos";
String dato=((JavascriptExecutor)DriverContext.getDriver()).executeScript(javaScript).toString();
returns图表中所有数据的字符串(数组)。
我有一个使用 angular 构建的图表 js.This 是我检查图表元素时得到的结果。
<canvas
ng-reflect-datasets="[object Object]"
ng-reflect-labels="blahblah"
ng-reflect-options="[object Object]"
ng-reflect-chart-type="line"
ng-reflect-colors="[object Object]"
ng-reflect-legend="true">
</canvas>
图中的线条有适当的工具提示和数据。 有人可以指导我如何获取值/工具提示值吗?
CANVAS 标签就像页面中的小程序,不包含其中显示的 HTML,因此无法正常交互。您可以使用 .MoveToElement(element, offsetX, offsetY)
移动光标、单击和悬停等操作,但这不是确定性的。如果内容发生变化,您将一无所知,因为它都是基于位置而不是基于元素的。最好的办法是与开发人员交谈,如果您可以访问他们,让他们为您构建一个 API,您可以使用它来访问 CANVAS 的内部结构并以这种方式进行测试.
我刚开始为 Java 使用 ngWebDriver,我知道您可以在 C# 中使用 Protractor.NET。
您可以使用 ngWebDriver "ByAngular" 定位器获取您提到的 ng-* 元素。
例如,这是这样一个元素的样子:
<select ng-model="operator" class="bla bla"/>
driver.findElement(ByAngular.model("operator"))
在 java 中,如果你使用 ChartJS,我会使用它:
String javaScript ="var puntos=Chart.instances[0].data.datasets[0].data; return puntos";
String dato=((JavascriptExecutor)DriverContext.getDriver()).executeScript(javaScript).toString();
returns图表中所有数据的字符串(数组)。