Ottenere l'errore "Messaggio: riferimento elemento obsoleto: l'elemento non è allegato al documento della pagina". Cosa sto facendo di sbagliato

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

Ricevo il seguente errore nell'istruzione if:

riferimento elemento obsoleto: l'elemento non è allegato al documento della pagina

Risposte

1 rahulrai Aug 19 2020 at 22:02

L'eccezione dell'elemento obsoleto si verifica quando le proprietà dell'elemento su cui lo script sta cercando di eseguire alcune operazioni vengono modificate. Se desideri fare clic su un intervallo con il testo "XXX", puoi fare clic direttamente su quello:

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

Se la tua esigenza è di scorrere tutti questi elementi, allora:

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