2014-09-25 5 views
5

Im folgenden Fall ist Appium korrekt in der Lage, Elemente nach Klassen zu lokalisieren, aber wenn wir die Daten basierend auf content-desc jedes Elements bearbeiten wollen, sehen wir einen Fehler . Warum können wir nicht Attribut für content-desc bekommen? Jeder Ratschlag geschätzt.Appium kann keine "content-desc" -Attributdaten erhalten

List<WebElement> arrayOfProperties2 = driver.findElementsByClassName("android.view.View"); 
    List<WebElement> propertyMarkerEle = new ArrayList<>(); 

    System.out.println("Found arrayOfProperties2 total: "+ arrayOfProperties2.size()); 

    for (WebElement property : arrayOfProperties2){ 
     String contentDesc = property.getAttribute("content-desc"); 
     if (contentDesc.contains("property")) 
      propertyMarkerEle.add(property); 

Error: Found arrayOfProperties2 total: 32
org.openqa.selenium.NoSuchElementException: An element could not be located on the page using the given search parameters. (WARNING: The server did not provide any stacktrace information)

+0

Dies kann helfen, rate ich https://github.com/appium/appium/issues/5142. Ich glaube, dass die Codeänderungen eingedrückt werden. – nullpointer

Antwort

15

Use "Name"

property.getAttribute("name");

+0

Hallo, driver.findElementByXPath ("android.widget.TextView []"). GetAttribute ("name"); bekomme keinen attribute text von app .. kannst du mir sagen, wo ich falsch im code gearbeitet habe .. class, package und content-desc nicht drucken, aber restliche node detail print erfolgreich ..Ich weiß nicht, was ist falsch .. Danke für den Fortschritt –

+0

es könnte nicht eine Inhaltsbeschreibung dann ?? – TinyTimZamboni

+0

Nein Tiny .. es hat inhaltliche Beschreibung auf bestimmten Element .. –

-2

Text oder inhalt ab als

driver.findElement(By.xpath("//*[@text='Remove Contact']")) 

als

seinen Benutzer verwendet werden,
driver.findElement(By.name("Remove Contact")) 


driver.findElement(By.xpath("//*[@content-desc='Remove Contact']")) 

als

driver.findElement(By.name("Remove Contact")) 
+0

In Python scheint content-desc nicht nach find_element_by_name zu mappen. Ach! – kiminoa

0

versuchen, diese verwendet werden:

driver.findElement(By.AccessibilityID(""));

1

Die Liste der akzeptierten Attributnamen können in boolean attrbutes und string attributes finden.

Die Booleschen Attribute sind:

  • aktiviert
  • überprüfbar
  • geprüft
  • klickbare
  • fokussierbarem
  • konzentriert
  • longClickable
  • scrolla ble
  • ausgewählt
  • angezeigt

Die Zeichenfolge attibutes sind:

  • content
  • Text
  • classname
  • ResourceID

Ich testete dies mit den Python-Bindungen.

Kredit geht an TikhomirovSergey in einem github comment.

Verwandte Themen