Search in sources :

Example 1 with SeleniumWTextFieldWebElement

use of com.github.bordertech.wcomponents.test.selenium.element.SeleniumWTextFieldWebElement in project wcomponents by BorderTech.

the class SeleniumWComponentsUtil method wrapInputElementWithTypedWebElement.

/**
 * Analyze the input element and attempt to wrap it in the appropriate component-specific subclass. If not component
 * specific subclass can be identified then the element will be wrapped in a SeleniumWComponentWebElement.
 *
 * @param driver the WebDriver.
 * @param element the default Selenium WebElement.
 * @return a subtype of SeleniumWComponentWebElement specific to the element type.
 */
public static SeleniumWComponentInputWebElement wrapInputElementWithTypedWebElement(final WebDriver driver, final WebElement element) {
    String tag = element.getTagName();
    if (tag.equals(SeleniumWComponentInputWebElement.EDITABLE_TAG)) {
        String type = element.getAttribute("type");
        WebElement el = element.findElement(By.xpath(".."));
        switch(type) {
            case SeleniumWCheckBoxWebElement.TYPE:
                return new SeleniumWCheckBoxWebElement(el, driver);
            case SeleniumWTextFieldWebElement.TYPE:
                // Text fields have a wrapping Span, we want to wrap that
                return new SeleniumWTextFieldWebElement(el, driver);
            case SeleniumWEmailFieldWebElement.TYPE:
                return new SeleniumWEmailFieldWebElement(el, driver);
            case SeleniumWRadioButtonWebElement.TYPE:
                return new SeleniumWRadioButtonWebElement(el, driver);
            default:
                return new SeleniumWComponentInputWebElement(el, driver);
        }
    } else if (tag.equals(SeleniumWTextAreaWebElement.TEXTAREA_TAG)) {
        return new SeleniumWTextAreaWebElement(element.findElement(By.xpath("..")), driver);
    } else if (tag.equals(SeleniumWSelectWebElement.SELECT_TAG)) {
        return new SeleniumWSelectWebElement(element.findElement(By.xpath("..")), driver);
    }
    return new SeleniumWComponentInputWebElement(element, driver);
}
Also used : SeleniumWCheckBoxWebElement(com.github.bordertech.wcomponents.test.selenium.element.SeleniumWCheckBoxWebElement) SeleniumWSelectWebElement(com.github.bordertech.wcomponents.test.selenium.element.SeleniumWSelectWebElement) SeleniumWTextAreaWebElement(com.github.bordertech.wcomponents.test.selenium.element.SeleniumWTextAreaWebElement) SeleniumWEmailFieldWebElement(com.github.bordertech.wcomponents.test.selenium.element.SeleniumWEmailFieldWebElement) SeleniumWTextFieldWebElement(com.github.bordertech.wcomponents.test.selenium.element.SeleniumWTextFieldWebElement) WebElement(org.openqa.selenium.WebElement) SeleniumWTextAreaWebElement(com.github.bordertech.wcomponents.test.selenium.element.SeleniumWTextAreaWebElement) SeleniumWCheckBoxWebElement(com.github.bordertech.wcomponents.test.selenium.element.SeleniumWCheckBoxWebElement) SeleniumWComponentWebElement(com.github.bordertech.wcomponents.test.selenium.element.SeleniumWComponentWebElement) SeleniumWDialogWebElement(com.github.bordertech.wcomponents.test.selenium.element.SeleniumWDialogWebElement) SeleniumWRadioButtonWebElement(com.github.bordertech.wcomponents.test.selenium.element.SeleniumWRadioButtonWebElement) SeleniumWComponentInputWebElement(com.github.bordertech.wcomponents.test.selenium.element.SeleniumWComponentInputWebElement) SeleniumWEmailFieldWebElement(com.github.bordertech.wcomponents.test.selenium.element.SeleniumWEmailFieldWebElement) SeleniumWSelectWebElement(com.github.bordertech.wcomponents.test.selenium.element.SeleniumWSelectWebElement) SeleniumWRadioButtonWebElement(com.github.bordertech.wcomponents.test.selenium.element.SeleniumWRadioButtonWebElement) SeleniumWTextFieldWebElement(com.github.bordertech.wcomponents.test.selenium.element.SeleniumWTextFieldWebElement) SeleniumWComponentInputWebElement(com.github.bordertech.wcomponents.test.selenium.element.SeleniumWComponentInputWebElement)

Aggregations

SeleniumWCheckBoxWebElement (com.github.bordertech.wcomponents.test.selenium.element.SeleniumWCheckBoxWebElement)1 SeleniumWComponentInputWebElement (com.github.bordertech.wcomponents.test.selenium.element.SeleniumWComponentInputWebElement)1 SeleniumWComponentWebElement (com.github.bordertech.wcomponents.test.selenium.element.SeleniumWComponentWebElement)1 SeleniumWDialogWebElement (com.github.bordertech.wcomponents.test.selenium.element.SeleniumWDialogWebElement)1 SeleniumWEmailFieldWebElement (com.github.bordertech.wcomponents.test.selenium.element.SeleniumWEmailFieldWebElement)1 SeleniumWRadioButtonWebElement (com.github.bordertech.wcomponents.test.selenium.element.SeleniumWRadioButtonWebElement)1 SeleniumWSelectWebElement (com.github.bordertech.wcomponents.test.selenium.element.SeleniumWSelectWebElement)1 SeleniumWTextAreaWebElement (com.github.bordertech.wcomponents.test.selenium.element.SeleniumWTextAreaWebElement)1 SeleniumWTextFieldWebElement (com.github.bordertech.wcomponents.test.selenium.element.SeleniumWTextFieldWebElement)1 WebElement (org.openqa.selenium.WebElement)1