2017-04-25 47 views
0

我有一個畫布,我想要在畫布內獲取文本。我可以將鼠標懸停在畫布內,但不知道如何獲取文字。 上傳圖片,我需要使用量角器來驗證場景 請幫忙?如何使用Webdriver或量角器在畫布中獲取文本

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

enter image description here

回答

0

的基礎是,你不能用硒。 CANVAS標籤就像頁面中的一個小程序。它實際上並不包含任何HTML。有幾個選項:

  1. 如果您有機會獲得開發者,你可以讓他們給你的一個API,使您可以使用JavaScript從您的硒腳本訪問文本等。如果它是某個庫的一部分,庫本身可能會提供一個可以使用的API。這是最可靠的選擇。

  2. 對於執行動作,您可以使用座標。您可以將所有點擊等操作設置爲座標,但這很大程度上取決於瀏覽器渲染,屏幕分辨率等。但這不會幫助您從CANVAS中獲取文本。

  3. 對於文本,您確實沒有任何選項可直接獲取文本。運行完成後,您可以截圖並驗證文本,但這是關於您的最佳選擇。如果你想變得很花哨,取決於文本等,你可能會找到一個OCR庫,它能夠從你截圖中提取文本。

0

畫布上的細節呈現爲圖像。所以你不能在畫布上閱讀數據,除非他們在單獨的控制下。

您可能要考慮圖像比較相同。

畫布上執行任何操作:browser.actions().mouseMove(Canvas, { x: 202, y: 101 }).click().perform();

0

在畫布裏面工作,你可以使用Kantu網絡自動化軟件或Sikuli。這兩種解決方案都基於屏幕截圖,圖像比較和OCR,並可以在畫布內獲取文本。

您通過在其周圍繪製粉色框標記要提取(「刮」)的數據。然後,關東使用OCR檢索數據。隨着Sikuli,你需要先找出座標。

或者,如JeffC建議的那樣,使用您當前的軟件截取屏幕截圖,然後進行OCR。對於OCR,有着名的Tesseract lib或使用免費的ocr.space等在線服務。

0

畫布不會將其繪製的圖形分開包含文本。你需要OCR。 您可以使用一種工具將畫布圖像剪切到剪貼板並調用程序來粘貼圖像以進行預處理,然後執行OCR。圖像預處理將提取文本的關注區域以提高OCR的準確性。

相關問題