- navigate to url, move forward, move backwards
- get title, get url
- take screenshot
- refresh page
- close browser/tab
- send keys
- execute script
- locating web elements driver.findElement() of 0 match throws exception, driver.findElements() if 0 returns empty list
- id, class name, link text, name, tag, css selector, XPath
- Element
- getText(), getAttribute(), getTagName(), isDisplayed(), isEnabled(), isSelected() for check box, isMultiple() multi select box, getOptions()
- element.click() - button, click, checkbox, combobox
- element.sendKeys(”string”) - input field, element.clear()
- form.submit() - form
- Listbox Selection
- new Select(element).selectByIndex(elementCount)
- select[ByIndex, ByVisibleText, ByValue]deselect[ByIndex, ByVisibleText, ByValue]
- deselectAll()
- Window
- driver.manage().window().getSize() → getHeight() or getWidth()
- driver.manage().window().setSize(Dimension d)
- driver.manage().window().maximize()
- setPosition()
- driver.getWindowHandle()
- driver.switchTo().window(windowHandle)
- Synchronization, Cookies, Data Driven Testing
- Page Load Timeout
- Sets the amount of time to wait for a page load to complete
- Global setting of the Webdriver object
- Negative value means indefinite wait time
driver.manage().timeouts(). pageLoadTimeout(30, TimeUnit.SECONDS)- Implicit Wait
- Specifies the waiting time for element not immediately visible
- Global setting of the Webdriver object
- 0 by default
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS)- Explicit Wait
- Waiting for a certain condition
- Poor alternative – Thread.sleep(1000)
- Recommended – WebDriverWait class
WebDriverWait wait = new WebDriverWait(driver, TIME_OUT_IN_SECONDS); wait.until(ExpectedConditions.method);- ExpectedConditions class
- presenceOfElementLocated(By locator)
- textToBePresentInElement(WebElement element, text)
- titleContains(title)
- visibilityOf(element)
- invisibilityOfElementLocated(By locator)
- elementToBeSelected(WebElement element)
- elementToBeClickable(By locator)
- Cookie
- Useful for testing the login feature
- Getting or setting session IDs
- Cookie attributes (Name, Value, Domain, Path, Expiry, Secure, Http only)
driver.manage().getCookies()get cookies from current sessiondriver.manage().getCookieNamed(cookieToTest)get by namedriver.manage().deleteAllCookies()sessiondriver.manage().deleteCookie(TestCookie)specificdriver.manage().deleteCookieNamed(cookieToTest)name- Adding cookie - domain attribute is current by default
Cookiecookie = newCookie("mycookie","123456");
driver.manage().addCookie(cookie);