es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Advertencia de Python Selenium: “DeprecationWarning: los comandos find_element_by_* están obsoletos”.

Tengo múltiples elementos con el mismo nombre de clase (table-number). Estoy tratando de encontrar los específicos basados en su secuencia. En este caso [1], el primero que aparece en el DOM.

Aquí está el código funcionando:

my_table = driver.find_element_by_xpath("(//span[@class='table-number'])[1]").text

Sin embargo, estoy obteniendo el siguiente error:

DeprecationWarning: Los comandos find_element_by_* están obsoletos. Por favor, utiliza find_element() en su lugar.

Sé que puedo ignorarlo, pero es molesto. He intentado diferentes sintaxis, como:

my_table = driver.find_element(By.XPATH, "(//span[@class='table-number'])[1]").text

my_table = driver.find_element(By.XPATH, "(//span[@class='table-number'])[1]").text

¿Cuál debería ser la sintaxis correcta? ¿Estoy acercándome de manera incorrecta?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para solucionar la advertencia de obsolescencia, debes utilizar la función find_element() en lugar de find_element_by_xpath. Aquí está la sintaxis corregida:

    from selenium.webdriver.common.by import By
    
    my_table = driver.find_element(By.XPATH, "(//span[@class='table-number'])[1]").text
    

    Este código debería funcionar correctamente y eliminar la advertencia de obsolescencia. Ten en cuenta que el argumento By.XPATH especifica la estrategia de búsqueda para encontrar el elemento y puede ser reemplazado por otras estrategias de búsqueda como By.ID, By.CLASS_NAME, etc.

Comments are closed.