Search in sources :

Example 1 with SeleniumWCheckBoxWebElement

use of com.github.bordertech.wcomponents.test.selenium.element.SeleniumWCheckBoxWebElement 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)

Example 2 with SeleniumWCheckBoxWebElement

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

the class WDropdownOptionsExample_Test method configureDropDown.

/**
 * Updates the controls to produce the expected dropdown.
 *
 * @param driver the selenium driver
 * @param type the type of drop down.
 * @param actionNumber the number of the action to use, base off position in the radio button select.
 */
private void configureDropDown(final SeleniumWComponentsWebDriver driver, final WDropdown.DropdownType type, final int actionNumber) {
    // action on change.
    SeleniumWCheckBoxWebElement actionOnChange = driver.findWCheckBox(byWComponentPath("WCheckBox[1]"));
    while (!actionOnChange.isSelected()) {
        actionOnChange.click();
    }
    WebElement action = driver.findWCheckBox(byWComponentPath("WCheckBox[" + actionNumber + "]"));
    while (!action.isSelected()) {
        action.click();
    }
    driver.findElement(byWComponentPath("WRadioButtonSelect[0]", type)).click();
    // set null option to true.
    SeleniumWCheckBoxWebElement includeNullOption = driver.findWCheckBox(byWComponentPath("WCheckBox[0]"));
    while (!includeNullOption.isSelected()) {
        includeNullOption.click();
    }
    driver.findElement(byWComponentPath("WDropdownOptionsExample/WFieldSet/WButton")).click();
}
Also used : SeleniumWCheckBoxWebElement(com.github.bordertech.wcomponents.test.selenium.element.SeleniumWCheckBoxWebElement) WebElement(org.openqa.selenium.WebElement) SeleniumWCheckBoxWebElement(com.github.bordertech.wcomponents.test.selenium.element.SeleniumWCheckBoxWebElement)

Aggregations

SeleniumWCheckBoxWebElement (com.github.bordertech.wcomponents.test.selenium.element.SeleniumWCheckBoxWebElement)2 WebElement (org.openqa.selenium.WebElement)2 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