Estoy usando la versión 4.0.0 de Selenium, como referencia.
Estoy tratando de hacer clic en un elemento de la tarjeta Vuetify, que actúa como un botón, pero me encuentro con un element not interactable: [object HTMLDivElement] has no size and location o simplemente element not interactable errores. He podido resolver problemas similares con cadenas de acción en el pasado, pero parece que no funciona con esto.
Este es el elemento de la lista en el que está contenido el botón:
<li class="lu-li list-item" data-v-711d8d7a="" style="display: flex;"> <div class="addCard v-card v-card--link v-sheet theme--light" data-v-711d8d7a="" tabindex="0" onselectstart="return false;"> ::before <i class="v-icon notranslate btnAdd material-icons theme--light enableIcon" data-v-711d8d7a="" aria-hidden="true"> add ::after </i> </div> </li> Lo primero que probé fue simplemente hacer clic en el elemento y luego hacer clic en el elemento <i> debajo de él cuando eso no funcionó:
addQLButton = driver.find_element(By.CLASS_NAME, "addCard") addQLButton.click() addQLButton = driver.find_element(By.CLASS_NAME, "btnAdd") addQLButton.click() Ya intenté usar WebDriverWait en el elemento v-card <div> y <i> para asegurarme de que estén disponibles antes de hacer clic, lo cual pasa sin problemas:
WebDriverWait(driver, timeout=10).until(lambda d: d.find_element(By.CLASS_NAME, "addCard")) WebDriverWait(driver, timeout=10).until(lambda d: d.find_element(By.CLASS_NAME, "btnAdd"))Ya intenté usar cadenas de acción para asegurarme de que los elementos estén visibles (esto funcionó en el pasado con errores similares), pero sigo teniendo el mismo problema:
addQLButton = driver.find_element(By.CLASS_NAME, "addCard") actions.move_to_element(addQLButton).perform() driver.execute_script("arguments[0].click();", addQLButton) addQLButton = driver.find_element(By.CLASS_NAME, "btnAdd") actions.move_to_element(addQLButton).perform() driver.execute_script("arguments[0].click();", addQLButton)Los elementos no están en un iframe, y estoy seguro de que tengo seleccionada la ventana correcta, ya que todavía puedo interactuar con sus elementos.
Estoy un poco perdido, cualquier ayuda sería muy apreciada. Estoy feliz de responder cualquier pregunta aclaratoria si no expliqué el problema con la suficiente claridad.
Me las arreglé para hacerlo funcionar con algo de javascript:
js = "document.querySelector('.btnAdd').click();" driver.execute_script(js)