from selenium import webdriver
driver = webdriver.Chrome()
driver.set_page_load_timeout(7)
def urlOpen(url):
try:
driver.get(url)
print driver.current_url
except:
return
然後我有URL列表並調用上面的方法。Python硒。如何正確使用driver.set_page_load_timeout()?
if __name__ == "__main__":
urls = ['http://motahari.ir/', 'http://facebook.com', 'http://google.com']
# It doesn't print anything
# urls = ['http://facebook.com', 'http://google.com', 'http://motahari.ir/']
# This prints https://www.facebook.com/ https://www.google.co.kr/?gfe_rd=cr&dcr=0&ei=3bfdWdzWAYvR8geelrqQAw&gws_rd=ssl
for url in urls:
urlOpen(url)
問題是,當網站「http://motahari.ir/」拋出超時異常,網站的「http://facebook.com」和「http://google.com」總是拋出超時異常。
瀏覽器一直在等待'motahari.ir/'加載。但循環只是繼續(它不打開'facebook.com',但等待'motahari.ir/')並繼續拋出超時異常
初始化webdriver實例需要很長時間,所以我把它從方法,我認爲這造成了問題。那麼,我是否應該在發生超時異常時重新初始化webdriver實例?如何? (由於我在該函數之外初始化了驅動程序,因此我無法將其重新初始化爲除外)
爲什麼你要在5秒內加載一個網頁....這將是困難的... – abccd
雖然我不認爲它應該發生。一切似乎都是正確的,(除了事實上你還沒有導入'By'),這可能只是因爲你的互聯網速度慢或者網站的服務器速度很慢...... – abccd
*「但是循環剛剛結束'打開'b.net',但等待'a.com'),並繼續拋出超時異常「*它不,它實際上是加載b.net,它只是不顯示在頂部。我想讓你知道,在硒中的鏈接需要一個前綴「https://」或「http://」才能工作。 – abccd