mardi 8 décembre 2020

How to automate control of Telerik RadTreeView checkbox in selenium webdriver java?

I have to test RadTreeView Checkboxes in selenium webdriver java. Could you please tell me how to automate Telerik multiselect dropdown with RadTreeView checkboxes controls in selenium webdriver java?RadTreeView Checkbox example

Reference URL: https://demos.telerik.com/aspnet-ajax/treeview/examples/functionality/checkboxes/defaultcs.aspx

I can get all parent elements, and child elements also. but while looping it gives wrong results. I can make a loop for parent elements. but if I try to loop child elements based on parent I could not get the result.

Code:

List dropdownParentElementsCollapsebtns = driver .findElements(By.xpath("//[@id='ctl00_PageContent_rgResourceCate_EmbeddedTree']/ul/li/div/span[2]")); List dropdownParentElementsChkbxs = driver .findElements(By.xpath("//[@id='ctl00_PageContent_rgResourceCate_EmbeddedTree']/ul/li/div/span[3]")); List dropdownParentElementsNames = driver .findElements(By.xpath("//[@id='ctl00_PageContent_rgResourceCate_EmbeddedTree']/ul/li/div/span[4]")); List allChildElements = driver .findElements(By.xpath("//[@id='ctl00_PageContent_rgResourceCate_EmbeddedTree']/ul/li/ul/li")); List allChildElementsChkbxs = driver.findElements( By.xpath("//[@id='ctl00_PageContent_rgResourceCate_EmbeddedTree']/ul/li/ul/li/div/span[2]")); List allChildElementsNames = driver.findElements( By.xpath("//[@id='ctl00_PageContent_rgResourceCate_EmbeddedTree']/ul/li/ul/li/div/span[3]"));

    if (dropdownParentElements.size() < 0) {
        System.out.println("No Elements available");
    } else {
        System.out.println(" Elements available");
    }
    boolean isCheckSelected = false;

    //For Parent Elements
    for (int i = 0; i < dropdownParentElementsChkbxs.size(); i++) {
        WebElement checkbox = dropdownParentElementsChkbxs.get(i);
        WebElement collapsebtn = dropdownParentElementsCollapsebtns.get(i);
        String name = dropdownParentElementsNames.get(i).getText();
        /*
         * if (checkbox.isSelected()) { System.out.println(name +
         * " is Already Selected"); } else { checkbox.click(); System.out.println(name +
         * " is Selected"); }
         */

        if (!(checkbox.isSelected())) {
            checkbox.click();
            isCheckSelected = true;
        }
        if (isCheckSelected == true) {
            collapsebtn.click();
        }

    }

    //List<String> SelectedChapList = new ArrayList<String>();

    //Looping child based on parent
    for (int i = 0; i < dropdownParentElementsChkbxs.size(); i++) {
        dropdownParentElementsChkbxs.get(i).click();
        WebElement collapsebtn = dropdownParentElementsCollapsebtns.get(i);
        collapsebtn.click();
        for (WebElement childelementChkbx : allChildElementsChkbxs) {
            System.out.println(childelementChkbx.getAttribute("class"));
            if (childelementChkbx.getAttribute("class") == "rtUnchecked") {
                childelementChkbx.click();
            }

        }
    }

Kindly let me know if you get any idea. Thank You

Aucun commentaire:

Enregistrer un commentaire