0
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做到。

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

4

2 回答 2

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

于 2016-06-28T12:23:00.293 回答
1

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

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

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

于 2016-07-04T12:26:53.473 回答