Closing Selenium webdriver after X seconds

Question:

I am using selenium webdriver (firefox) on Ubuntu + Python, and run into an issue where sometimes the page doesn’t load, and the whole script simply hangs.
Is there a way to force-exit the webdriver window after X seconds ?
Looking for code like the one below, that actually works though. It looks like if the webdriver is waiting on the response, it will wait (almost) indefinitely).

driver.get(record)
sleep(5)
my_html = driver.page_source #get whatever we have after 5 sec
driver.close() #close driver

NOTE!: The accepted answer is correct. The issue was caused by my geckodriver being out of date (v 0.11 vs v.019).
To check your version on ubuntu:

geckodriver --version   #command in terminal

to update the driver (if needed), use these steps. Note – Sandeep’s answer worked best for me.

Asked By: FlyingZebra1

||

Answers:

from selenium import webdriver
from time import sleep

record = "https://www.google.com"
driver = webdriver.Firefox()
driver.set_page_load_timeout(30)
try:
    driver.get(record)
    my_html = driver.page_source #get whatever we have after 5 sec
finally:
    driver.close()

Setting page load timeout, as described here, will achieve what you’re after. It will raise a TimeoutException if the page doesn’t load within the time given, closing the program.

Answered By: n1c9

When the page isn’t loading and and the whole script simply hangs the solution would be to configure set_page_load_timeout().

Here is an effective code block catching the TimeoutException. Irrespective of TimeoutException happening or not remember to call quit() method within try-except{} block to keep away the dangling instances of the WebDriver variants.

from selenium import webdriver
from selenium.common.exceptions import TimeoutException

driver = webdriver.Chrome(executable_path=r'C:UtilityBrowserDriverschromedriver.exe')
driver.set_page_load_timeout(2)
try :
    driver.get("https://www.booking.com/hotel/in/the-taj-mahal-palace-tower.html?label=gen173nr-1FCAEoggJCAlhYSDNiBW5vcmVmaGyIAQGYATG4AQbIAQzYAQHoAQH4AQKSAgF5qAID;sid=338ad58d8e83c71e6aa78c67a2996616;dest_id=-2092174;dest_type=city;dist=0;group_adults=2;hip_dst=1;hpos=1;room1=A%2CA;sb_price_type=total;srfid=ccd41231d2f37b82d695970f081412152a59586aX1;srpvid=c71751e539ea01ce;type=total;ucfs=1&#hotelTmpl")
    print("URL successfully Accessed")
    driver.quit()
except TimeoutException:
    print("Page load Timeout Occured. Quiting !!!")
    driver.quit()
Answered By: undetected Selenium
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.