簡體   English   中英

Selenium Python:StaleElementReferenceException有所不同

[英]Selenium Python: StaleElementReferenceException with a twist

我遇到了與硒有關的臭名昭著的StaleElementReferceExeption錯誤。 我已經檢查了有關該主題的先前問題,並且常見的解決方案是添加和implicit.wait,explicit.wait或time.sleep來給網站加載時間。 我已經嘗試過了,但是仍然遇到錯誤。 誰能說出問題所在

這是我的代碼:

links = driver.find_elements_by_css_selector("a.overline-productName")


    time.sleep(2)
    #finds pricing data of links on page
    link_count = 0
    for element in links:

        links[link_count].click()
        cents = driver.find_element_by_css_selector("span.cents")
        dollar = driver.find_element_by_css_selector("span.dollar")
        text_price = dollar.text + "." + cents.text
        price = float(text_price)
        print(price)
        print(link_count)
        driver.execute_script("window.history.go(-1)")
        link_count = link_count + 1
        time.sleep(5)

我想念什么?

您正在將鏈接存儲在列表中。 第二個您跟隨到另一個頁面的鏈接,那組鏈接是陳舊的。 因此,循環中的下一個迭代將嘗試從列表中單擊陳舊的鏈接。

即使您像稍后那樣返回歷史記錄,該原始元素引用也已消失。

最好的選擇是根據索引進行遍歷,並在每次返回頁面時找到鏈接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM