What is the Page Object Pattern in Selenium WebDriver? [closed]

The documentation has already covered this. If you have any specific questions, feel free to edit your main post. Official: Page Objects and PageFactory on Selenuim Wiki. Page Object Design Pattern on Selenium official site. Unofficial: Do a Google search, you will get a lot info on this. Page Object Pattern Page Objects in Selenium … Read more

Mocking and Stubbing with protractor

This blog post discusses advance usage scenarios for Protractor. In particular it covers the the little know addMockModule() method of the Protractor browser object. The method allows you to create angular modules in Protractor (i.e. mocks or stubs of your API module) and upload them to the browser to replace the real implementation within the … Read more

Selenium: How to Inject/execute a Javascript in to a Page before loading/executing any other scripts of the page?

Selenium has now supported Chrome Devtools Protocol (CDP) API, so , it is really easy to execute a script on every page load. Here is an example code for that: driver.execute_cdp_cmd(‘Page.addScriptToEvaluateOnNewDocument’, {‘source’: ‘alert(“Hooray! I did it!”)’}) And it will execute that script for EVERY page load. More information about this can be found at: Selenium … Read more

Network throttling with chrome and selenium

The API to control network emulation were added to ChromeDriver. And should be available for quite a while now. According to comment in the linked issue you should use version at least 2.26 because of some bugfix. According to Selenium changelog bindings are available for these languages: JavaScript as of version 3.4.0 (commit) Python as … Read more

Is there a Selenium WebDriver available for the Microsoft Edge browser?

Yes, there is a WebDriver implementation for Microsoft Edge. Its initial availability was announced on 23 July 2015. Language bindings in the Selenium open source project have been updated to take advantage of this driver implementation, and those updates have been released in Selenium 2.47. Note that the Java language bindings were re-released as 2.47.1 … Read more

Webdriver Screenshot

Use driver.save_screenshot(‘/path/to/file’) or driver.get_screenshot_as_file(‘/path/to/file’): import selenium.webdriver as webdriver import contextlib @contextlib.contextmanager def quitting(thing): yield thing thing.quit() with quitting(webdriver.Firefox()) as driver: driver.implicitly_wait(10) driver.get(‘http://www.google.com’) driver.get_screenshot_as_file(‘/tmp/google.png’) # driver.save_screenshot(‘/tmp/google.png’)

Capturing JavaScript error in Selenium

I’m doing this to capture JavaScript errors: [TestCleanup] public void TestCleanup() { var errorStrings = new List<string> { “SyntaxError”, “EvalError”, “ReferenceError”, “RangeError”, “TypeError”, “URIError” }; var jsErrors = Driver.Manage().Logs.GetLog(LogType.Browser).Where(x => errorStrings.Any(e => x.Message.Contains(e))); if (jsErrors.Any()) { Assert.Fail(“JavaScript error(s):” + Environment.NewLine + jsErrors.Aggregate(“”, (s, entry) => s + entry.Message + Environment.NewLine)); } }