我認爲那些瞭解硒工具的人現在會笑,但也許你可以分享你的知識,因爲現在真的也想笑。使用selenium和python迭代結果頁面:StaleElementReferenceException
我的代碼是這樣的:
def getZooverLinks(country):
global countries
countries = country
zooverWeb = "http://www.zoover.nl/"
url = zooverWeb + country
driver = webdriver.Firefox()
driver.get(url)
button = driver.find_element_by_class_name('next')
links = []
for page in xrange(1,4):
WebDriverWait(driver, 60).until(lambda driver :driver.find_element_by_class_name('next'))
divList = driver.find_elements_by_class_name('blue2')
for div in divList:
hrefTag = div.find_element_by_css_selector('a').get_attribute('href')
print(hrefTag)
newLink = zooverWeb + hrefTag
links.append(newLink)
button.click()
driver.implicitly_wait(10)
time.sleep(60)
return links
所以我想遍歷所有結果頁面,並始終得到的div具有類=「藍色2」的鏈接,然後按照「下一步」 - 鏈接到進入下一個結果頁面。 但我總是得到一個StaleElementReferenceException說: 「消息:元素不在緩存中發現 - 也許是頁面發生了變化,因爲它是擡頭」
但是頁面的佈局始終是相同的。那麼這裏有什麼問題?自頁面變化以來,點擊後的網址是否未傳遞給驅動程序?我怎樣才能做到這一點?
類似的問題 - http://stackoverflow.com/questions/17972359/selenium-webdriver-with-java-element-not-found-in-the-cache-perhaps-the-page – LittlePanda 2015-04-01 14:26:49
感謝您的提示。我在for循環中包含了按鈕= ...,它工作完美! – steph 2015-04-01 14:34:19