canvas - 如何使用 Webdriver 或 Protractor 在 Canvas 中获取文本

标签 canvas selenium-webdriver html5-canvas protractor

我有一个 Canvas ,我想在 Canvas 中获取文本。我可以将鼠标悬停在 Canvas 内,但不确定如何获取文本。
上传了我需要使用 Protractor 验证场景的图像
请帮忙?

<canvas style="background-color: rgb(255, 255, 255); width: 395px; height: 194px; cursor: auto;" width="592" height="291"/>

enter image description here

最佳答案

基本原理是您不能使用 Selenium。 CANVAS标签就像页面中的小程序。它实际上不包含任何 HTML。有几个选项:

  • 如果您有权访问开发人员,您可以让他们为您公开 API,以便您可以使用 Selenium 脚本中的 Javascript 访问文本等。如果它是某个库等的一部分,则库本身可能会提供您可以使用的 API。这是最可靠的选择。
  • 对于执行操作,您可以使用坐标。您可以将所有点击等操作都基于坐标,但这高度依赖于浏览器渲染、屏幕分辨率等。这不会帮助您从 CANVAS 中获取文本。尽管。
  • 对于文本,您确实没有任何选项可以直接获取文本。您可以在运行完成后截取屏幕截图并验证文本,但这是您的最佳选择。如果您想变得真正花哨,取决于文本等,您可以找到一个 OCR 库,该库能够从您拍摄的屏幕截图中提取文本。
  • 关于canvas - 如何使用 Webdriver 或 Protractor 在 Canvas 中获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43609429/

    相关文章:

    javascript - 重绘 Canvas html5而不闪烁

    javascript - 我如何从另一个网站获得 "getImageData"?安全错误 : DOM Exception 18

    java - 无法加载放置在 mac 资源中的 chrome 可执行文件(在 windows 中运行良好)

    javascript - 如何在 three.js 应用程序中为 Canvas 分配一个 id

    JavaScript - 从二进制 JPG 数据创建图像

    javascript - 如何在 HTML5 Canvas 中平滑缩放图案图像?

    android - 如何在android中的任何设备的中心画一个圆圈

    javascript - Canvas 内存泄漏

    java - 在不同的显示器上测试失败 selenium webdriver java

    java - java字符串中`rtserver-id`变成`rtserver - id`