XPath ich verwende ist für einen Android-App:Ungültige Wahl Ausnahme während der Ausführung Appium Tests an Sauce Labs
//android.widget.EditText[contains(@resource-id,'etPass')]
Diese XPath funktionieren gut, wenn ich den Test lokal auf reales Gerät oder VM laufen.
Aber wenn ich den gleichen Test auf Sauce Labs führe, gibt es mir ungültige Auswahl Ausnahme.
org.openqa.selenium.InvalidSelectorException:
An error occurred while searching for an element by XPath. (WARNING:
The server did not provide any stacktrace information)
Command duration or timeout: 88 milliseconds
For documentation on this error, please visit:
http://seleniumhq.org/exceptions/invalid_selector_exception.html
Wenn ich XPath mit @text
statt @resource-id
, es funktioniert. Warum erkennt Sauce Labs @resource-id
nicht als gültiges Attribut zum Auffinden von xpath?
Unten ist der Screenshot von uiautomatorviewer mit xml
Haben Sie versucht '' // android.widget.EditText [enthält (@ id, 'etPass')] das? –
Ja, ich habe es versucht. Es berücksichtigt nicht die Bedingung. So '' android.widget.EditText[contains(@id,'etPass ')] 'ist das selbe wie' // android.widget.EditText'. Es geht nur zum ersten EditText-Element auf dem Bildschirm, die zufällig ist Benutzername Box, nicht Passwort-Box – BludShot
@BludShot: Bitte aktualisieren Sie die Frage mit Ihrem Code-Block und Appium Inspector Screenshot für die genannten Elemente, um die Dinge klar zu machen – nullpointer