網站有6個鏈接的頂級菜單。我能得到這個鏈接是這樣的名單:如何用Selenium webdriver和Python逐個點擊鏈接
links = browser.find_elements_by_css_selector(MENU_LINKS_CSS_SELECTOR)
這個我需要點擊該鏈接指向一個個後。如果我這樣做:
for link in links:
link.click()
我收到以下錯誤:selenium.common.exceptions.StaleElementReferenceException: Message: u'Element not found in the cache - perhaps the page has changed since it was looked up'
。據我所知,這個錯誤引發了因爲WebElement
實例和網頁的DOM在重新加載頁面(點擊鏈接)後中斷連接。
在這裏,我應該注意到頂級菜單在所有頁面上都是一樣的。
那麼,我做錯了什麼?如何解決這個問題? TIA!
所以你知道你在收到異常可能是由刷新頁面造成的鏈接被點擊。因此,保存的「硒」對列表中下一個鏈接的引用將不再存在。根據Svineet的回答,每次你想點擊下一個鏈接時,你都需要收集鏈接列表 - '刷新'每個鏈接的硒引用。 –