使用Coorindates(X,Y)使用Webdriver获取文本
问题描述:
我使用类似于web驱动程序java的winium驱动程序来处理桌面应用程序。但我目前工作的应用程序不支持任何定位器,如:类名称,id,CSS等。因此,我使用不同的概念来启动应用程序(Winium Driver)和使用sikuli的动作。现在我无法使用sikuli从应用程序中提取准确的文本。所以我想出了不同的解决方案,比如使用tesseract OCR从应用程序中提取文本(使用坐标捕获图像并传递给tesseract),但仍然可以获取我需要的确切文本。使用Coorindates(X,Y)使用Webdriver获取文本
现在我有另一种想法,像使用坐标(因为我能够使用sikuli获得坐标)替代方式的脚本,并通过这些坐标来找到Web元素。 我google了很多,但仍然找不到任何合适的解决方案来获取网络元素使用坐标。
任何人都可以建议使用坐标获取网页元素的最佳方式,以便我可以传递网页元素并使用winium驱动程序获取文本。
在此先感谢。
答
您可以使用Selenium截取待测应用程序的截图,然后将图像发送到OCR.space OCR API。它返回屏幕截图上每个单词的坐标坐标 =>您具有文本的坐标。
{
"ParsedResults" : [
{
"TextOverlay" : {
"Lines" : [
{
"Words": [
{
"WordText": "Word 1",
"Left": 106,
"Top": 91,
"Height": 9,
"Width": 11
},
{
"WordText": "Word 2",
"Left": 121,
"Top": 90,
"Height": 13,
"Width": 51
}