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

相关问题