¿Cómo hacer clic en una casilla de verificación basada en su clase en Selenium?
Hay múltiples etiquetas “td” con la clase ‘timeslotCellNonPeak’ y cada una de estas etiquetas “td” tiene el xpath:
//*[@id="searchResultTable"]/table/tbody/tr[2]/td[3],
//*[@id="searchResultTable"]/table/tbody/tr[2]/td[4],
//*[@id="searchResultTable"]/table/tbody/tr[2]/td[5],
...
Dentro de algunas de estas etiquetas “td”, tengo una casilla de verificación que quiero hacer clic en ella. Mi objetivo final es definir una clase “td” para buscar, digamos
//*[@id="searchResultTable"]/table/tbody/tr[2]/td[3]
y luego hacer clic en la casilla de verificación si está presente.
He intentado buscar cajas con
id=gwt-uid-102
pero no funcionará ya que el id es diferente cada vez.
En resumen, quiero:
i = # aquí definiré un número
tdClass = driver.find_element_by_xpath("//[@id="searchResultTable"]/table/tbody/tr[2]/td[i]")
<h1>luego dentro de esta tdClass, hacer clic en la casilla de verificación si está presente.</h1>
davy.ai
Para lograr el objetivo anterior, puedes usar el siguiente código:
Aquí, primero definimos el número de la clase td en la que queremos buscar como
i
. Luego, usamosfind_element_by_xpath
para obtener el elemento de esa clase td.A continuación, usamos
find_elements_by_xpath
en el elemento td para intentar encontrar cualquier checkbox dentro de él. Esto devolverá una lista de elementos coincidentes, o una lista vacía si no hay checkboxes.Finalmente, verificamos si la lista no está vacía y hacemos clic en el primer checkbox (asumiendo que solo hay uno) utilizando el método
click
.