2012-07-30 73 views
16

¿Cómo puedo encontrar el elemento en DOM basado en un atributo personalizado?Selenium webdriver: cómo encontrar el elemento en DOM según el atributo personalizado

Por ejemplo:

atributos DOM no están presentes en la vista HTML. Usando el inspector DOM puedo identificar el atributo personalizado es único.

driver.findElement(By.id("SimpleSearch:dIndicesGrid:1:Value")).getAttribute("_celltype"); 

Aquí _celltype es un atributo personalizado. Este atributo no está visible en la vista HTML.

Respuesta

18

Tendría que ubicar el elemento por xpath.

El siguiente sería encontrar cualquier elemento que tiene el atributo _celltype con 'celltype' Valor:

driver.findElement(By.xpath("//*[@_celltype='celltype']")) 

Si sabe qué tipo de elemento que es lo que puede hacer que sea más específico. Por ejemplo, si usted sabe que son etiquetas div, hacer:

driver.findElement(By.xpath("//div[@_celltype='celltype']")) 
+1

pero necesito obtener el valor de _celltype. – user1563042

+0

Lo siento, no estoy seguro de entender tu objetivo. ¿Está tratando de encontrar un elemento basado en su atributo _celltype o está tratando de encontrar el valor del atributo _celltype de un elemento? Para mí, parece que el primero está cubierto por esta respuesta y el último por el código en su pregunta. ¿Podría aclarar lo que está buscando, tal vez dar un ejemplo de HTML y qué valor/elemento está tratando de obtener de él? –

+0

lo siento, intenté preguntar cómo leer el atributo DOM personalizado (_celltype) del elemento web. – user1563042

2

encontrar el elemento por xRuta:

WebElement element = driver.findElement(By.xpath("xpath_link")); 

xpath_link = //*[@_celltype='celltype']; // This is sample xpath; 

System.out.println(element.getText()); 

Esto hará que el texto del campo 'celltype' y muestra el valor de la misma.

14

XPath es malo, usted podría utilizar esto en vez

By.CssSelector("[_celltype='celltype']"); 
+1

CssSelector es preferible. Lee también más fácil. –

+1

También es más rápido. Estoy ejecutando una aplicación en la que XPath es básicamente 6 veces más lento que cualquier otro selector. Como tengo que ejecutar esta operación varias veces, hace una gran diferencia en el tiempo total de ejecución de mi aplicación. –

Cuestiones relacionadas