I searched online, but couldn't find anything about how to stop page loading over a browser using selenium web-driver
.
Any idea for the same?
-
Can you explain what you mean by 'stop page loading' ?Phil Kirkham– Phil Kirkham2013年02月04日 18:51:23 +00:00Commented Feb 4, 2013 at 18:51
-
4he wants the page to stop loading...squeemish– squeemish2013年02月04日 19:13:52 +00:00Commented Feb 4, 2013 at 19:13
8 Answers 8
This might be useful.
driver.findElement(By.tagName("body")).sendKeys("Keys.ESCAPE");
OR
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("return window.stop");
You must use driver.page_load_strategy = 'none'
if using chrome else chromedriver will wait for full url to load before performing execution
-
The find element body did not work for me as it could not find the element until the page loaded. However the Javascript works beautifullyAdam Garner– Adam Garner2017年08月07日 10:28:10 +00:00Commented Aug 7, 2017 at 10:28
If you want to simulate the browser's STOP button, this post should help you out https://stackoverflow.com/questions/5453423/how-to-stop-the-page-loading-in-firefox-programaticaly
-
yeah! I have gone through that post earlier,but couldn't understand how to really write it... as that was shorthand code. can you help me on that?CodeLover– CodeLover2013年02月05日 18:10:23 +00:00Commented Feb 5, 2013 at 18:10
If you are using firefox then you can set preference for default timeout:
fp = webdriver.FirefoxProfile()
fp.set_preference("http.response.timeout", 5)
fp.set_preference("dom.max_script_run_time", 5)
driver = webdriver.Firefox(firefox_profile=fp)
driver.get("http://www.google.com/")
This will stop page load after 5 seconds.
-
I get:
Exception in thread "main" java.lang.IllegalArgumentException: dom.max_script_run_time must be == 0 || >= 30
So, minimum is 30 seconds or 0.invzbl3– invzbl32019年08月01日 14:16:34 +00:00Commented Aug 1, 2019 at 14:16
There were a few possible solutions to this over on Stackoverflow on Stop browser load from selenium webdriver.
This included:
Here is a function you may call to set the page load timeout you need.
-
Link only answers are not encouraged. Please add the solution part of the link to your answer.LittlePanda– LittlePanda2015年04月30日 11:43:01 +00:00Commented Apr 30, 2015 at 11:43
-
1Also, the link is dead.Frank H.– Frank H.2017年02月09日 11:57:36 +00:00Commented Feb 9, 2017 at 11:57
I use three steps with chrome and it works:
- Navigate to "about:blank"
- Get element "body"
- On that element send keys "Esc"
We can use windows.stop();
in order to stop the page loading. Try the below code:
driver.execute_script("window.stop();")
The .execute_script()
method didn't work for me as it turned out the specified script was executing on an about:blank
page before it visited the url. What did work for me was injecting the script into the chromedriver session itself (such that the script runs for every page load) inspired from this SO answer.
driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {'source': 'setTimeout(function(){window.stop();}, 5000);'})
driver.get(urls)