如何通过 "chart.js" 使用 Selenium
How to use Selenium with "chart.js"
有人要求我使用 Selenium 为网站编写一些测试。一些页面上有由 "chart.js" 库生成的图表。测试要求我:
- 读取图表中部分数据值的大小
- 单击图表上的某些柱。
- 将鼠标悬停在某些栏上并验证工具提示
麻烦的是图表是作为单个 HTML canvas
元素实现的,因此没有 DOM 用于 selenium 可以操作的图表细节。
您将无法使用 Selenium 直接访问图表,因为没有 DOM,如您所述。可能有一种方法可以使用 JavascriptExecutor 到 运行 JS 命令来访问图表数据。我不熟悉 chart.js 但我已经针对 CANVAS 元素编写了自动化程序。我与开发人员取得了联系,并与他们讨论了我需要访问的内容,他们为我提供了方法等方面的指示,我可以调用这些方法来获得我需要的内容。我使用页面对象模型,所以我最终编写了一些 Java 函数,这些函数环绕访问 CANVAS.
的 JS 代码
有人要求我使用 Selenium 为网站编写一些测试。一些页面上有由 "chart.js" 库生成的图表。测试要求我:
- 读取图表中部分数据值的大小
- 单击图表上的某些柱。
- 将鼠标悬停在某些栏上并验证工具提示
麻烦的是图表是作为单个 HTML canvas
元素实现的,因此没有 DOM 用于 selenium 可以操作的图表细节。
您将无法使用 Selenium 直接访问图表,因为没有 DOM,如您所述。可能有一种方法可以使用 JavascriptExecutor 到 运行 JS 命令来访问图表数据。我不熟悉 chart.js 但我已经针对 CANVAS 元素编写了自动化程序。我与开发人员取得了联系,并与他们讨论了我需要访问的内容,他们为我提供了方法等方面的指示,我可以调用这些方法来获得我需要的内容。我使用页面对象模型,所以我最终编写了一些 Java 函数,这些函数环绕访问 CANVAS.
的 JS 代码