簡體   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