检测特定文本的位置

时间:2016-06-28 11:26:49

标签: python ios appium appium-ios python-appium

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 此处 and to get more click 此处

所以我使用xpath识别了文本,我可以得到它的位置和大小。 现在我们可以以某种方式获得这里的位置。我需要点击它,但因为它不是一个元素我无法搜索它。所以如果我能够获得它的位置,我可以tap

但是我们怎样才能获得它的位置并保持通用性以便它在不同的设备上运行?

2 个答案:

答案 0 :(得分:1)

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

创建TTTAttributedLabelUILabel子类),并将文本内容放入其中,就像它是UILabel一样。将其代表设置为自己。然后,以这种方式添加单词的链接:

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,希望你能找到一个等效的方法。

答案 1 :(得分:1)

没有任何直接的方法来实现这一点(Appium本身没有API可用)。 但是,我的解决方案是通用的,适用于所有设备(Android和iOS),所有编程语言实现。

  1. [您已经完成]获取元素的位置和大小。
  2. 截取当前屏幕的截图。
  3. 使用图像的位置和大小从截图中裁剪图像。[如果没有不明确的目标,可以跳过此步骤]
  4. [您只需手动执行一次此操作]裁剪出您想要获取位置的图像部分。
  5. 搜索裁剪图像的位置,获取位置并执行精确点击/点击。
  6. 有关图片搜索,请参阅此处:How to find an image within another image using python