Cómo encontrar un elemento que tiene un ID dinámico / cambio de nombre en cada carga de página usando Selenium WebDriver

R Dhaval

Encontré algunas respuestas sobre esto, pero no respondieron mi pregunta, por lo que estoy escribiendo una nueva pregunta.

Tengo un código HTML que tiene los siguientes elementos de casilla de verificación (en el elemento de inspección del navegador)

<input role="checkbox" type="checkbox" id="jqg_TransactionFormModel501EditCollection2_147354_grid_-1274" class="cbox" name="jqg_TransactionFormModel501EditCollection2_147354_grid_-1274" value="true">

En mi caso de prueba, quiero hacer clic en la casilla de verificación usando su ID usando Selenium Webdriver.

aquí Id = "jqg_TransactionFormModel 501 EditCollection2_ 147354 grid - 1274 " es dinámico.

en la identificación anterior, las letras marcadas en negrita y cursiva (dinámicas) cambiarán con diferentes casillas de verificación en la misma página, así como también con la actualización de la página.

Las letras marcadas en negrita (dinámicas) cambiarán solo en la actualización de la página (permanecerán iguales en todas las casillas de verificación en la misma página).

¿Cómo debo formatear / escribir XPATH para poder hacer clic en las casillas de verificación deseadas usando la siguiente declaración?

WebElement checkbox = webDriver.findElement(By.id("idOfTheElement"));
if (!checkbox.isSelected()) {
    checkbox.click();
}

Gracias por su ayuda de antemano ..!

Chico

Puede usar una identificación parcial usando cssSelectoroxpath

webDriver.findElement(By.cssSelector("[id*='TransactionFormModel']"));

webDriver.findElement(By.xpath("//input[contains(@id, 'TransactionFormModel')]"));

Puede reemplazarlo TransactionFormModelcon cualquier otra parte fija del ID.

Como nota al margen, no es necesario ubicar el elemento dos veces. Tu puedes hacer

WebElement checkbox = webDriver.findElement(By.id("idOfTheElement"));
if (!checkbox.isSelected()) {
    checkbox.click();
}

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

TOP Lista

CalienteEtiquetas

Archivo