【问题标题】:python element is no longer attached to the dom seleniumpython 元素不再附加到 dom selenium
【发布时间】:2014-06-06 19:06:28
【问题描述】:

我得到“元素不再附加到 dom”异常,即使该元素存在并且是可点击的,我正在尝试单击 ryanair 网站上的“下一步”箭头,下一个按钮的 html 是:

<li class="newer" ng-class="{'loadingsmall':loading}">
<a ng-disabled="loading" ng-click="loadMore(0, 'SelectInput$LinkButtonNext1', 1)"
title="Next Week" href="">
</a>
</li>

我通过几种方法找到并点击了它:

elem = WebDriverWait(browser, 15).until(EC.element_to_be_clickable((By.XPATH, 
"//a[@title='Next Week']")))
elem = browser.find_element_by_xpath("//a[@title='Next Week']")
elem.click()

和:

area = browser.find_element_by_xpath("//a[@title='Next Week']")
action = webdriver.ActionChains(browser)
action.move_to_element(area) action.click(area) action.perform()

和:

elem = browser.find_element_by_link_text('>')
elem.click()

如果我之间没有任何操作,一切都可以正常工作,但是一旦我告诉 selenium 点击页面上的其他元素(我不移动到其他页面,我会留在同一页面上并显示一些动态内容)“下一个”链接仅在第一次时有效,然后给了我例外情况,非常感谢您的帮助! :)

【问题讨论】:

    标签: python firefox python-2.7 selenium


    【解决方案1】:

    您仍在同一页面上,但由于某些 AJAX 操作和调用,DOM 的元素发生了变化,因此您不得不使用以下方法重新检测您的对象:

    elem = browser.find_element_by_link_text('>')
    

    如果你不这样做,你很有可能会得到一个

    StaleReferenceException
    

    了解更多info

    【讨论】:

      猜你喜欢
      • 2014-07-15
      • 2014-10-05
      • 1970-01-01
      • 2021-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多