com.blogspot.jadecalyx.webtools.jcWebPage.java Source code

Java tutorial

Introduction

Here is the source code for com.blogspot.jadecalyx.webtools.jcWebPage.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.blogspot.jadecalyx.webtools;

import java.util.*;
import org.openqa.selenium.*;

/**
 *
 * @author johnchambers
 */
public class jcWebPage {

    String _handle;
    String _site;
    jcPageObjectHelper _pageObjectHelper;
    WebDriver _driver;

    public jcWebPage(WebDriver driver, String handle, String site) throws Exception {
        _handle = handle;
        _site = site;
        _pageObjectHelper = new jcPageObjectHelper(_site, _handle);
        _driver = driver;
    }

    public String GetHandle() {
        return _handle;
    }

    public void Click(String objectHandle) {
        Stack<jcPageObjectSet> es = _pageObjectHelper.GetLookupDetails(objectHandle);
        WebElement we = extractElement(null, es);
        we.click();
    }

    public void SetText(String objectHandle, String textToSet) {
        Stack<jcPageObjectSet> es = _pageObjectHelper.GetLookupDetails(objectHandle);
        WebElement we = extractElement(null, es);
        we.sendKeys(textToSet);
    }

    public List<WebElement> GetWebList(String objectHandle) {
        Stack<jcPageObjectSet> lookupInfo = _pageObjectHelper.GetLookupDetails(objectHandle);
        WebElement el = extractElement(null, lookupInfo);
        List<WebElement> returnList = new ArrayList<WebElement>();
        List<WebElement> elements = el.findElements(By.cssSelector("li"));
        for (WebElement e : elements) {
            returnList.add(e);
        }
        return returnList;
    }

    private WebElement extractElement(WebElement currElement, Stack<jcPageObjectSet> cssStack) {
        if (cssStack.empty()) {
            return currElement;
        }
        jcPageObjectSet currSet = cssStack.pop();
        List<WebElement> wel;
        if (currElement == null) {
            wel = _driver.findElements(By.cssSelector(currSet.GetDetails()));
        } else {
            wel = currElement.findElements(By.cssSelector(currSet.GetDetails()));
        }
        if (!wel.isEmpty()) {
            return extractElement(wel.get(0), cssStack);
        } else {
            return null;
        }
    }

}