SeleniumNote

=Selenium Webdriver=
 * www.w3.org/TR/webdriver/
 * Selenium Webdriver API download
 * WebDriver
 * WebElement
 * forms
 * Selenium Webdriver replaces WebDriverBackedSelenium(Legacy Selenium in its previous relase).
 * http://www.seleniumhq.org/download/
 * https://sites.google.com/a/chromium.org/chromedriver/downloads

Chrome Driver
Download Selenum-ChromeDriver executable and add to $PATH.
 * Chrome options https://sites.google.com/a/chromium.org/chromedriver/capabilities
 * Chrome protocol chrome://net-internals/#httpCache

Error Messages

 * A script on this page is causing Internet Explorer to run slowly kb175500

Firefox Driver
Put everything shipped with along selenium-java-2.39.0.jar, e.g all jar files under libs folder into the classpath of your project.
 * Dependency library
 * selenium-java-2.39.0.jar download
 * selenium-server-standalone-2.39.0.jar legacy download


 * Firefox
 * https://www.mozilla.org/en-US/firefox/installer-help/?channel=release&installer_lang=en-US
 * Firefox versions download click

xvfb

 * http://stackoverflow.com/questions/6183276/how-do-i-run-selenium-in-xvfb

=Locate Elements=
 * WebElement
 * support.ui Select

CSS Selector

 * attribute value starts with: input[id^='ctrl']
 * attribute value ends with: input[id$='_userName']
 * attribute value contains: input[id*='userName']

CSS Pseudo Class
Read more
 * W3schools click
 * Selenium easy click
 * Saucelabs click

XPath Selector

 * XPath Note

XPath Axis

 * //td[text='Product 1']/ancestor::table
 * /table/descendant::td/input
 * //td[text='Product 1']/following::tr
 * //td[text='Product 1']/following-sibling::td
 * //td[text='$150']/preceding::tr
 * //td[text='$150']/preceding-sibling::td

Selenium with Flash

 * http://code.google.com/p/flex-ui-selenium/
 * http://www.adobe.com/devnet/flash/articles/flash_selenium.html

Moving Between Windows and Frames

 * Pop Up
 * Alert

=Selenium API=

Double Click

 * 1) initialize builder
 * 2) build
 * 3) peform

JavaScript Executor

 * 1) Cast WebDriver to JavascriptExecutor
 * 2) executeScript
 * 3) assertion

Multiple Select
=Flow Control=
 * TargetLocator switchTo
 * Options options
 * Timeouts timeouts

Implicit Wait

 * Synchronizing a test with an implicit wait
 * The default setting is 0
 * Wait for a defined amount of time for the element to appear in the DOM
 * In other terms, an implicit wait polls the DOM for a certain amount of time when trying to find an element or elements if they are not immediately available.
 * Minimize or avoid using an implicit wait in your tests and try to handle synchronization issues with an explicit wait.

Explicit Wait

 * WebDriverWait
 * ExpectedConditions
 * An element is visible and enabled elementToBeClickable(By locator)
 * An element is selected elementToBeSelected(WebElement element)
 * Presence of an element presenceOfElementLocated(By locator)
 * Specific text present in an element textToBePresentInElement(By locator, java.lang.String text)
 * Element value textToBePresentInElementValue(By locator, java.lang.String text)
 * Title titleContains(java.lang.String title)

Fluent Wait

 * Tbd, FluentWait click

Expected Condition

 * See built in expected conditions ExpectedConditions
 * 1) My Expected Condition
 * 2) private final class MyExpectedCondition implements ExpectedCondition {
 * 3) @Override
 * 4) public WebElement apply(WebDriver d) {
 * 5) return d.findElement(By.id("page4"));
 * 6) My Wait
 * 7) WebDriverWait myWait = (new WebDriverWait(driver, 5));
 * 8) WebElement message = myWait.until(new MyExpectedCondition);
 * 9) NoSuchElementException
 * 10) d.findElement(By.id("page4")) throws NoSuchElementException if no found such web-element

Pop-up

 * By its name
 * By its title


 * By its content

Exceptions

 * NoSuch... TBD

=Send Events=
 * actions
 * action
 * ButtonReleaseAction, ClickAction, ClickAndHoldAction, CompositeAction, ContextClickAction, DoubleClickAction, DoubleTapAction, DownAction, FlickAction, KeyDownAction, KeyUpAction, LongPressAction, MoveAction, MoveMouseAction, MoveToOffsetAction, PauseAction, ScrollAction, SendKeysAction, SingleTapAction, UpAction

Double Click
=Form Control=
 * Attach file

=Screenshot= TakesScreenshot

=PageObject=

Page Object
Or use constructor(Driver driver) instead of instantiate a new driver.
 * Annotation


 * PageFactory


 * Test Case


 * factory code


 * AfterLoginPage

Loadable Component

 * LoadableComponent

Search Result Fragment
=Tables= =Dynamic Elements=

=Selenium Grid=
 * Start reading - Grid2 click
 * Configuring the nodes by JSON
 * Configuring the hub by JSON

Hub
e.g. selenium-server-standalone-2.37.0.jar download

parallel

 * parallel suites

Continue reading at parallel-tests.
 * parallel methods/cases

=Test Results=

Via Api
=Other Topics=

Popup
=Keep Reading=

Selenium and Proxy

 * http://jsocks.sourceforge.net/
 * http://sourceforge.net/projects/wpg-proxy/
 * http://www.jtmelton.com/2007/11/27/a-simple-multi-threaded-java-http-proxy-server/

=Books=
 * Packt.Selenium.2.Testing.Tools.2nd.Oct.2012
 * Packt.Selenium.Testing.Tools.Cookbook.2012
 * Selenium interview questions click