繁体   English   中英

检测特定文字的位置

[英]Detect location of specific text

Appium 1.5.0 
Xcode  7.3 
IOS 10.11.4 OSX EI Capitan
Using on:Simulator iOS 8.1

假设我们有一个文本字段, To see more information click 此处 To see more information click and to get more click To see more information click 此处 and to get more click 信息

因此,我使用xpath标识了文本,然后可以获取其位置和大小。 现在我们可以以某种方式获取此处的位置。我需要单击它,但是因为它不是元素,所以无法搜索它。 因此,只要我能找到它的位置,就可以tap它。

但是,我们如何获得它的位置并保持其通用性,以便它在不同的设备上运行?

使用Objective C的想法(我知道OP使用Appium,但他告诉我回答)是使用诸如TTTAttributedLabel之类的库并以这种方式使用它:

创建TTTAttributedLabelUILabel子类),然后将文本内容放入其中,就好像它是UILabel。 将其委托设置为self。 然后,通过以下方式向单词添加链接:

NSRange rangeWord = [attributedLabel.text rangeOfString:@"here"];
[attributedLabel addLinkToURL:[NSURL URLWithString:@"anActionOnClickHere"] withRange:rangeUser];

点击单词时,它将调用此方法,您可以在其中处理点击:

- (void)attributedLabel:(__unused TTTAttributedLabel *)label
   didSelectLinkWithURL:(NSURL *)url {
    NSString *urlToString = [url absoluteString];

    if ([urlToString containsString:@"anActionOnClickHere"]) { //perform segue for example
        [self performSegueWithIdentifier:@"hereSegue" sender:self];
    }
}

我绝对不了解Python,希望您能找到等效的方法。

没有任何直接方法可以实现此目的(Appium本身没有可用的API)。 但是,我的解决方案是通用的,可以在所有设备(Android和iOS),所有编程语言实现上使用。

  1. [您已经完成]获取元素的位置和大小。
  2. 拍摄当前屏幕的屏幕截图。
  3. 使用图像的位置和大小从屏幕快照中裁剪图像。[如果目标不明确,可以跳过此步骤]
  4. [您只需手动执行一次]裁剪出您想要获取位置的图像部分。
  5. 搜索裁剪图像的位置,获取位置并执行精确的点击/单击。

对于图像搜索,请参考此处: 如何使用python在另一个图像中查找图像

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM