「メッセージ:古い要素参照:要素がページドキュメントに添付されていません」というエラーが表示されます。

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

ifステートメントで次のエラーが発生します。

古い要素の参照:要素がページドキュメントに添付されていません

回答

1 rahulrai Aug 19 2020 at 22:02

スクリプトが何らかの操作を実行しようとしている要素のプロパティが変更されると、古い要素の例外が発生します。テキスト「XXX」のスパンをクリックする場合は、直接クリックできます。

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

そのようなすべての要素をループすることが要件である場合は、次のようにします。

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