2016-03-31 8 views
0

Ich habe UITableViewCell, die Betreff, Name, Beschreibung, Zeit hat. Wenn ich das auf Appium teste, ändert sich der Xpath für UIElement nur für Subject-Zeile. XPath: -subject Linie: //UIAApplication[1]/UIAWindow[1]/UIATableView[1]/UIATableCell[3]**/UIAStaticText[2]**Warum Xpath-Änderungen für UILabel für UITableViewCell in Appium?

nach Änderungen XPath: -subject Linie: //UIAApplication[1]/UIAWindow[1]/UIATableView[1]/UIATableCell[3]**/UIAStaticText[3]**

, die eine andere UI-Element Details schenkt, die die Prüfung nicht besteht. Wie geht das mit Appium aus, oder muss ich es von Xcode reparieren?

+0

verwenden Sie cell.accessibilityIdentifier = "EINZIGARTIGER NAME FÜR JEDE ZELLE" in App .. mit accessibilityIdentifier ist die beste und empfohlene von apple .. Zugriff auf die Zellen/uiviews/buttons/.. mit accessibilityIdentifier von appuim für Automatisierung .. – mkumar

+0

if immer noch suchst du nur xpath, suche nach dem string text in allen zellen labels – mkumar

+0

ich vermute mal xpath ist was anderes? accessibilityIdentifier setzen wir ein. – Sandy

Antwort

0

Das Basieren auf XPaths ist keine wirklich gute Idee. Manchmal ist es jedoch die einzige Möglichkeit, Ihre Skripte zu entwickeln, wenn keine statischen IDs oder Eingabehilfen verfügbar sind.

Ihr Element, das zuvor wie folgt festgelegt wurde: UIAStaticText[2], so wie ich vermute, es war das zweite Element auf dem aktuellen Bildschirm verfügbar. Jetzt sieht es aus wie UIAStaticText[3] - es ist als dritte markiert. Wenn Sie auf dem Bildschirm, den Sie automatisieren, keine Änderungen sehen können, die durch ein Element verursacht werden, das sich im Hintergrund befindet, kann es ausgeblendet werden.

Der beste Ansatz besteht darin, statische Ressourcen-IDs in Ihren Skripten oder Accessibility-Labels zu verwenden, die Sie im Kommentar erwähnt haben und die Sie bereits festgelegt und verfügbar haben.