0

我有我的HTML代碼的部分:陳舊元素參考錯誤?

<a class="button-color1 full" href="/AntecipacaoRecebiveis/AntecipacaoAutomatica">Simule e contrate</a>      </div> 
         <div class="interntab clenitab" id="tabs-2"> 
          <div class="row"> 
           <div class="col-xs-8 col-sm-9 taxa-mes" style="text-align:center"> 
            <span class="caption-value">a ser creditado em sua conta</span><br /> 
            <span class="value-simulator">R$ 0,00</span> 
           </div> 
           <div class="col-xs-4 col-sm-3 a-ser-creditado" style="padding-top: 24px;"> 
            <span class="caption-value" style="font-size: 13px;line-height:6px">Taxa a.m.</span><br /> 
            <span class="value-simulator" style="font-size: 20px;line-height:8px">2,50%</span> 
           </div> 
          </div> 

然後,我想通過點擊onclick="SetAdquirente('ADIQ')(我對在同一網站上許多其他步驟成功)我的測試自動化,但它是生成以下錯誤:

raise exception_class(message, screen, stacktrace)

selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document (Session info: chrome=59.0.3071.115) (Driver info: chromedriver=2.31.488763 (092de99f48a300323ecf8c2a4e2e7cab51de5ba8),platform=Windows NT 6.1.7601 SP1 x86_64)

我的代碼找到它是:

elem = driver.find_element_by_id('tabs-2') 
    action.move_to_element(elem) 
    action.click() 
    action.perform() 

這究竟是爲什麼? (我試圖使用其他find_element語句,如xpath,鏈接文本等,並提高相同的結果)

非常感謝!

+0

你可以鏈接的網頁? – Mohamed

+0

@Mohamed不幸的是這是在開發環境中,沒有外部訪問。 – SnowBG

回答

0

如果在dom中更改了有關webelement並且該webelement的初始引用已丟失,則會發生StaleElementException。

您可以搜索webelement再次

試試這個

try: 
    elem = driver.find_element_by_id('tabs-2') 
    action.move_to_element(elem) 
    action.click() 
    action.perform() 
except StaleElementReferenceException: 
elem = driver.find_element_by_id('tabs-2') 
action.move_to_element(elem) 
action.click() 
action.perform() 
+1

謝謝@ michael-satish。但它不能解決我的問題。它返回相同的錯誤。 – SnowBG

相關問題