Aparece el error "Mensaje: referencia de elemento obsoleto: el elemento no está adjunto al documento de la página". Qué estoy haciendo mal

Aug 19 2020
connections=driver.find_elements_by_css_selector("a span[class='mn-connection-card__name t-16 t-black t-bold']")
        print(len(connections))
for connection in connections:
    if connection.text == "XXX":
        connection.click()
        break

Recibo el siguiente error en la declaración if:

referencia de elemento obsoleto: el elemento no está adjunto al documento de página

Respuestas

1 rahulrai Aug 19 2020 at 22:02

La excepción de elemento obsoleto ocurre cuando se cambian las propiedades del elemento en el que su script está tratando de realizar alguna operación. Si desea hacer clic en un intervalo con el texto "XXX", puede hacer clic directamente en él:

WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, "//a[span[text()='XXX']]")))

Si su requisito es recorrer todos estos elementos, entonces:

connections=driver.find_elements_by_css_selector("a span[class='mn-connection-card__name t-16 t-black t-bold']")
        print(len(connections))
for i in range(len(connections)):

    connections=driver.find_elements_by_css_selector("a span[class='mn-connection-card__name t-16 t-black t-bold']") #Created Fresh element list, so it wont be stale 
     if connections[i].text == "XXX"
         connections[i].click
         break