2013-04-12 42 views
1

我有一個非常簡單的過程,在一個循環內,我得到一個url,等待某些元素使用WebDriverWait加載,然後開始處理頁面源代碼。(Python)Selenium Webdriver在獲得一個新的url後返回舊的元素

我遇到的問題是,如果我不在driver.get(url)之間添加顯式等待時間,webdriver可以從舊頁面而不是最近頁面返回元素。如果我添加顯式(例如3秒)或調用driver.get(url)兩次,則問題得到解決。

有沒有人遇到這個問題或知道如何解決它?

謝謝。

+0

你有沒有指定的隱式時間爲驅動程序實例? – Santoshsarma

+0

@Santoshsarma我沒有添加隱式時間,你在談論implicitly_wait()嗎?我會試一試,看看它是否修復它。謝謝 – x89a10

+0

是的。我只是在考慮這一點。 – Santoshsarma

回答

-1

這似乎是一個Web瀏覽器上的問題。這就是爲什麼driver.get(url)後,我通常檢查,如果driver.get()是成功的:

driver.get(url) 
sleep(n_seconds) #that is not necessary. 
if driver.current_url == url: 
    #do something 
else: 
    #try again to get the page or wait more. 
相關問題