Example usage for org.openqa.selenium WebElement isEnabled

List of usage examples for org.openqa.selenium WebElement isEnabled

Introduction

In this page you can find the example usage for org.openqa.selenium WebElement isEnabled.

Prototype

boolean isEnabled();

Source Link

Document

Is the element currently enabled or not?

Usage

From source file:com.NFHS.PageObjects.UserAccountPage.java

public void isFiveEnabled() throws Exception {
    driver.manage().timeouts().implicitlyWait(2, TimeUnit.MINUTES);
    if (webElementProperty("5breadcrumb").isEnabled()) {
        driver.manage().timeouts().implicitlyWait(2, TimeUnit.MINUTES);
        WebElement nextbtn = webElementProperty("nextbutton");
        if (nextbtn.isEnabled()) {
            nextbtn.click();//from ww w . ja v a 2 s. c om
        }
    }

}

From source file:com.NFHS.PageObjects.UserAccountPage.java

public void nextButtonClick() throws Exception {

    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    WebElement nextbtn = webElementProperty("nextbutton");
    if (nextbtn.isEnabled()) {
        nextbtn.click();//from  w  ww.  j  av  a 2s. co m
    }
}

From source file:com.novartis.opensource.yada.test.YADAAdminTest.java

License:Apache License

/**
 * <ol>/*w ww .ja  va 2  s .com*/
 * <li>Opens the query editor</li>
 * <li>Validates all the buttons are present</li>
 * <li>Opens the security panel</li>
 * <li>Sets URL validation policy</li>
 * <li>Sets TokenValidation policy</li>
 * <li>Sets ExecutionPolicy</li>
 * <li>Sets ContentPolicy</li>
 * </ol>
 * @throws InterruptedException if any thread has interrupted the current thread
 * @throws IOException when the test URL can't be accessed 
 */
@Test(dependsOnMethods = { "testNewQueryForNewAppSave" })
public void testSecurityConfigForQuery() throws InterruptedException, IOException {
    WebDriver d = getDriver();
    String protector = this.app + " Test Protector";
    this.createQueryForNewApp(" Test Protector", "SELECT 1 AS COL1", "save");
    WebElement save = d.findElement(By.id("button-save"));

    // validate ui
    WebElement e = new WebDriverWait(d, 20)
            .until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(".alert-success")));
    String expected = "Hooray! Query " + protector + " was saved successfully.";
    Assert.assertEquals(e.getText(), expected);
    Assert.assertFalse(save.isDisplayed());

    // close dialog
    d.findElement(By.id("button-cancel")).click();
    Thread.sleep(3000);

    // restore app-mgr
    d.findElement(By.id("app")).click();
    new WebDriverWait(d, 20).until(ExpectedConditions.presenceOfElementLocated(By.id("app-mgr")));
    Thread.sleep(3000);

    // nav to queries
    d.findElement(By.id("app-qname-" + this.app)).click();
    Thread.sleep(3000);

    // open query for edit
    String qname = this.app + " Test Save";
    d.findElement(By.xpath("//*[text()[contains(.,\"" + qname + "\")]]")).click();
    this.switchToActiveElement(d, 3000);
    new WebDriverWait(d, 20)
            .until(ExpectedConditions.presenceOfElementLocated(By.id("query-editor-container")));

    // validate buttons
    List<WebElement> list = d.findElements(By.cssSelector("#query-editor-container .modal-footer button"));
    Assert.assertEquals(list.size(), 5);
    for (WebElement b : list) {
        Assert.assertTrue(b.isDisplayed() && b.isEnabled());
    }

    // open security panel
    d.findElement(By.id("headingTwo")).click();
    Thread.sleep(3000);

    // Confirm query result
    String result = getUrl(qname);
    l.debug("EXPECT NORMAL RESULT:\n" + result);
    Assert.assertTrue(result.contains(qname) && result.toUpperCase().contains("\"ROWS\":[{\"COL1\":\"1\"}]"));

    // "Mark this query as secure" and confirm "unauth"
    d.findElement(By.id("secure-query-ckbx")).click();
    d.findElement(By.id("button-save")).click();
    Thread.sleep(3000);
    result = getUrl(qname);
    l.debug("EXPECT UNAUTHORIZED RESULT:\n" + result);
    //   should be rejected at this point due to checkbox + lack of plugin
    Assert.assertFalse(result.contains(qname) && result.toUpperCase().contains("\"ROWS\":[{\"COL1\":\"1\"}]"));
    Assert.assertTrue(result.contains("Server returned HTTP response code: 403"));
    d.findElement(By.id("button-cancel")).click(); // back to app-mgr
    Thread.sleep(3000);

    // open query for edit
    e = new WebDriverWait(d, 20).until(ExpectedConditions
            .presenceOfElementLocated(By.xpath("//*[text()[contains(.,\"" + qname + "\")]]")));
    e.click();
    this.switchToActiveElement(d, 3000);
    new WebDriverWait(d, 20)
            .until(ExpectedConditions.presenceOfElementLocated(By.id("query-editor-container")));

    if (!d.findElement(By.id("secure-query-ckbx")).isDisplayed()) {
        d.findElement(By.id("headingTwo")).click();
        Thread.sleep(3000);
    }

    // confirm "Mark this query as not secure"
    d.findElement(By.id("secure-query-ckbx")).click();
    d.findElement(By.id("button-save")).click();
    Thread.sleep(3000);
    result = getUrl(qname);
    l.debug("EXPECT NORMAL RESULT:\n" + result);
    //   should be accepted, as box is unchecked
    Assert.assertTrue(result.contains(qname) && result.toUpperCase().contains("\"ROWS\":[{\"COL1\":\"1\"}]"));
    d.findElement(By.id("button-cancel")).click();
    Thread.sleep(3000);

    // open query for edit
    e = new WebDriverWait(d, 20).until(ExpectedConditions
            .presenceOfElementLocated(By.xpath("//*[text()[contains(.,\"" + qname + "\")]]")));
    e.click();
    this.switchToActiveElement(d, 3000);
    new WebDriverWait(d, 20)
            .until(ExpectedConditions.presenceOfElementLocated(By.id("query-editor-container")));

    if (!d.findElement(By.id("secure-query-ckbx")).isDisplayed()) {
        d.findElement(By.id("headingTwo")).click();
    }
    //    l.debug("Sleeping for 2 minutes to enable manual investigation");
    Thread.sleep(3000);
    // validate all components
    //   what is there before any data entry?

    WebElement plugin = d.findElement(By.className("policy-plugin"));
    WebElement policyArg = d.findElement(By.className("policy-arg"));
    WebElement argString = d.findElement(By.className("arg-string"));

    Assert.assertTrue(d.findElement(By.className("policy-group")).isDisplayed());
    Assert.assertTrue(plugin.isDisplayed());
    Assert.assertTrue(d.findElement(By.className("policy-action")).isDisplayed());
    Assert.assertTrue(argString.isDisplayed());
    Assert.assertTrue(d.findElement(By.className("policy-type")).isDisplayed());
    Assert.assertTrue(policyArg.isDisplayed());
    Assert.assertTrue(d.findElement(By.className("remove-policy")).isDisplayed());

    // enter policies

    //   what is there after each policy entry  
    plugin.sendKeys("Gatekeeper");
    Select policyType = new Select(d.findElement(By.className("policy-type")));
    policyType.selectByVisibleText("URL Pattern Matching");
    policyArg.clear();
    policyArg.sendKeys("auth.path.rx=^(https?://)?localhost:8080/.+$");
    Assert.assertEquals(argString.getText(), "auth.path.rx=^(https?://)?localhost:8080/.+$");

    Select policyAction = new Select(d.findElement(By.className("policy-action")));
    policyAction.selectByValue("save");
    Thread.sleep(2000);
    policyAction.selectByValue("add-same");
    //Thread.sleep(3000);

    String xpath = "//div[contains(@class,\"security-options\")][2]";
    e = new WebDriverWait(d, 20).until(ExpectedConditions.presenceOfElementLocated(By.xpath(xpath)));

    List<WebElement> policies = d.findElements(By.className("security-options"));
    List<WebElement> policyTypes = d.findElements(By.className("policy-type"));
    List<WebElement> policyArgs = d.findElements(By.className("policy-arg"));

    policyType = new Select(policyTypes.get(1));
    policyType.selectByVisibleText("Execution Policy (Indices)");
    policyArgs.get(1).clear();
    policyArgs.get(1).sendKeys("execution.policy.indices=0:getToken()");
    Assert.assertTrue(d.findElement(By.className("policy-protector")).isDisplayed());
    d.findElement(By.className("policy-protector")).sendKeys(protector);

    policyAction.selectByValue("save");
    Thread.sleep(3000);
    policyAction.selectByValue("add-same");
    //Thread.sleep(3000);

    xpath = "//div[contains(@class,\"security-options\")][3]";
    e = new WebDriverWait(d, 20).until(ExpectedConditions.presenceOfElementLocated(By.xpath(xpath)));

    policies = d.findElements(By.className("security-options"));
    policyTypes = d.findElements(By.className("policy-type"));
    policyArgs = d.findElements(By.className("policy-arg"));
    List<WebElement> policyProtectors = d.findElements(By.className("policy-protector"));

    policyType = new Select(policyTypes.get(2));
    policyType.selectByVisibleText("Execution Policy (Columns)");
    policyArgs.get(2).clear();
    policyArgs.get(2).sendKeys("execution.policy.columns=0:getToken()");

    Assert.assertEquals(policyProtectors.size(), 2);
    policyProtectors.get(1).sendKeys(protector);

    policyAction.selectByValue("save");
    Thread.sleep(2000);
    policyAction.selectByValue("add-same");

    xpath = "(//input[contains(@class,\"security-options\")])[3]";
    e = new WebDriverWait(d, 20).until(ExpectedConditions.presenceOfElementLocated(By.xpath(xpath)));

    policies = d.findElements(By.className("security-options"));
    policyTypes = d.findElements(By.className("policy-type"));
    policyArgs = d.findElements(By.className("policy-arg"));
    policyProtectors = d.findElements(By.className("policy-protector"));

    policyType = new Select(policyTypes.get(3));
    policyType.selectByVisibleText("Content Policy");
    policyArgs.get(3).clear();
    policyArgs.get(3).sendKeys("content.policy.predicate=x=y");

    expected = "auth.path.rx=^(https?://)?localhost:8080.+$,execution.policy.indices=0:getToken(),execution.policy.columns=token:getToken(),content.policy.predicate=x=y";
    Assert.assertEquals(argString.getText(), expected);

    // save 
    //   multiple ways to save? (not yet)
    policyAction.selectByValue("save");

    // TODO validate data is in db
    // TODO validate security works? or is this just for a standard integration test?
    // TODO alert user when security setting is invalid or unsavable for any reason
    // TODO alert user to save security settings (this may enable safety net after all)
    // TODO parse security param into UI when appropriate (it currently doesn't) 

    d.findElement(By.id("button-save")).click();
    Thread.sleep(3000);

    d.findElement(By.id("app")).click();
    new WebDriverWait(d, 20).until(ExpectedConditions.presenceOfElementLocated(By.id("app-mgr")));
    Thread.sleep(3000);

    // nav to queries
    d.findElement(By.id("app-qname-" + this.app)).click();
    Thread.sleep(3000);

    // open query for edit
    d.findElement(By.xpath("//*[text()[contains(.,\"" + qname + "\")]]")).click();
    this.switchToActiveElement(d, 3000);
    new WebDriverWait(d, 20)
            .until(ExpectedConditions.presenceOfElementLocated(By.id("query-editor-container")));

    d.findElement(By.id("headingThree")).click();
    Thread.sleep(3000);
    String actual = d.findElement(By.cssSelector("$('#default-params tbody tr:eq(0) td input:eq(1)')"))
            .getAttribute("value");
    Assert.assertEquals(actual, expected);

}

From source file:com.nuxeo.functionaltests.ITReadOnlyUserTest.java

License:Open Source License

@Test
public void testReadOnlyUser() throws Exception {
    login("leela", "test");
    DAMPage damPage = getDAMPage();/*from w  ww.  ja  va  2s. c o  m*/
    damPage = damPage.createAsset("File", "One Document", "One File description", "Leela", "1/1/2012");
    damPage = damPage.createAsset("File", "Another Document", "Another File description", "Fry", "1/1/2012");
    damPage.createAsset("File", "Sample picture", "This is a sample doc", "Bender", "1/2/2012");
    logout();

    login("bender", "test");
    // make sure navigation to a given domain is done, see NXP-13436
    findElementWithTimeout(By.linkText("DOCUMENT MANAGEMENT")).click();
    findElementWithTimeout(By.linkText("Default domain")).click();
    damPage = getDAMPage();
    SearchResultsFragment searchResultsFragment = damPage.getSearchResultsFragment();
    // Asset Library is not selected as the user does not have Write right
    // on it
    AssetCreationFancyBoxFragment assetCreation = searchResultsFragment.showAssetCreation(damPage);
    assetCreation.checkTextToBeNotPresent("Asset Library");
    assetCreation.cancel();

    // cannot bulk edit, but can add to worklist
    String bEditButtonId = "nxl_gridDamLayout:dam_search_nxw_searchResults_buttons:nxw_damBulkEdit_form:nxw_cvButton_damBulkEdit_subview:nxw_cvButton_damBulkEdit_link";
    String addToWLButtonId = "nxl_gridDamLayout:dam_search_nxw_searchResults_buttons:nxw_CURRENT_SELECTION_ADDTOLIST_form:nxw_CURRENT_SELECTION_ADDTOLIST";

    searchResultsFragment.selectAll();
    WebElement bulkEditButton = driver.findElement(By.id(bEditButtonId));
    assertFalse(bulkEditButton.isEnabled());

    // make sure ajax request is done, otherwise we might get stack traces
    findElementAndWaitUntilEnabled(By.id(addToWLButtonId));

    // cannot edit any metadata on the asset view
    assertFalse(damPage.hasElement(By.xpath("//div[contains(@class, 'foldableBox')]//a[text()='Edit']")));
    logout();
}

From source file:com.osbitools.ws.shared.xui.GenericGuiWebTest.java

License:LGPL

public WebElement checkButtonById(String lang, String id, String text, boolean enabled) {
    WebElement button = checkElementVisible(id, true);
    assertEquals(id + " is " + (enabled ? "not" : "") + " enabled", enabled, button.isEnabled());
    assertEquals(getLabelText(lang, text.toUpperCase()), button.getText());

    return button;
}

From source file:com.pages.CompanyLoginpage.java

public static void VerifyAccessKeyfld(WebDriver driver, String Companynumber) throws InterruptedException {
    driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
    driver.manage().deleteAllCookies();/*ww  w  . j a  v  a  2s.  c o m*/
    Thread.sleep(1000);
    JavascriptExecutor js = (JavascriptExecutor) driver;
    js.executeScript("return document.readyState").equals("complete");
    WebElement AccessKeyfld = driver.findElement(By.xpath(AccessKey_fld_xpath));
    if (AccessKeyfld.isDisplayed() || AccessKeyfld.isEnabled()) {
        driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
        driver.findElement(By.xpath(AccessKey_fld_xpath)).sendKeys(Companynumber);
        driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
        driver.findElement(By.xpath(AccessKey_fld_xpath)).clear();
        System.out.println("AccessKey field is displayed and enabled");
    } else {
        AssertJUnit.fail("AccessKeyfld is not Displayed");
    }
}

From source file:com.pages.CompanyLoginpage.java

public static void VerifyDownLoadBtn(WebDriver driver) {
    driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
    WebElement DownLoadBtn = driver.findElement(By.xpath(Download_btn_xpath));
    if (DownLoadBtn.isDisplayed() || DownLoadBtn.isEnabled()) {
        driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
        driver.findElement(By.xpath(Download_btn_xpath)).click();
        System.out.println(//from  ww w  .j a  va2 s. co m
                "DownLoadBtn is Displayed and Enabled,User is able to Login by clicking the Download button.");
    } else {
        AssertJUnit.fail("DownLoadBtn is not Displayed");
    }
}

From source file:com.pentaho.ctools.utils.ElementHelper.java

License:Apache License

/**
 * This method pretends to check if the element is present, if it doesn't
 * we wait for presence for a specific timeout (input), after this, we will
 * wait for element visible. And, if the element is present then we have to
 * check if is visible if not wait for visibility.
 *
 * @param driver// w w  w. j  a va2  s .co  m
 * @param locator
 * @param timeout
 */
public WebElement WaitForElementPresenceAndVisible(final WebDriver driver, final By locator,
        final Integer timeout) {
    this.log.debug("WaitForElementPresenceAndVisible::Enter");
    this.log.debug("Locator: " + locator.toString());
    WebElement element = null;
    ExecutorService executor = null;
    driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS);

    try {

        class RunnableObject implements Runnable {

            private WebElement theElement;

            public RunnableObject(WebElement theElement) {
                this.theElement = theElement;
            }

            public WebElement getValue() {
                return this.theElement;
            }

            @Override
            public void run() {
                Wait<WebDriver> wait = new FluentWait<WebDriver>(driver).withTimeout(timeout, TimeUnit.SECONDS)
                        .pollingEvery(50, TimeUnit.MILLISECONDS);

                // Wait for element visible
                this.theElement = wait.until(new Function<WebDriver, WebElement>() {

                    @Override
                    public WebElement apply(WebDriver d) {
                        try {
                            List<WebElement> listElem = d.findElements(locator);
                            if (listElem.size() > 0) {
                                WebElement elem = listElem.get(0);
                                if (elem != null
                                        && ((elem.isEnabled() == true) && (elem.isDisplayed() == true))) {
                                    return elem;
                                }
                                return null;
                            }
                            return null;
                        } catch (StaleElementReferenceException sere) {
                            return null;
                        }
                    }
                });
            }
        }

        RunnableObject r = new RunnableObject(element);
        executor = Executors.newSingleThreadExecutor();
        executor.submit(r).get(timeout + 2, TimeUnit.SECONDS);
        element = r.getValue();
    } catch (InterruptedException ie) {
        this.log.warn("Interrupted Exception");
        this.log.warn(ie.toString());
    } catch (ExecutionException ee) {
        if (ee.getCause().getClass().getCanonicalName()
                .equalsIgnoreCase(TimeoutException.class.getCanonicalName())) {
            this.log.warn("WebDriver timeout exceeded! Looking for: " + locator.toString());
        } else {
            this.log.warn("Execution Exception");
            this.log.warn(ee.toString());
        }
    } catch (java.util.concurrent.TimeoutException cte) {
        this.log.warn("Thread timeout exceeded! Looking for: " + locator.toString());
        this.log.warn(cte.toString());
    } catch (Exception e) {
        this.log.error("Exception");
        this.log.catching(e);
    }

    if (executor != null) {
        executor.shutdown();
    }

    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

    this.log.debug("WaitForElementPresenceAndVisible::Exit");
    return element;
}

From source file:com.pentaho.ctools.utils.ElementHelper.java

License:Apache License

/**
 * This method pretends to check if the element is present, if it doesn't
 * we wait for presence for a specific timeout (input).
 *
 * @param driver/*from  w  w w  . j  a va2s .c  om*/
 * @param locator
 */
public WebElement WaitForElementPresence(final WebDriver driver, final By locator, final Integer timeout,
        final Integer pollingtime) {
    this.log.debug("WaitForElementPresence::Enter");
    this.log.debug("Locator: " + locator.toString());
    WebElement element = null;
    ExecutorService executor = null;
    driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS);

    try {

        class RunnableObject implements Runnable {

            private WebElement theElement = null;

            public RunnableObject() {
            }

            public WebElement getValue() {
                return this.theElement;
            }

            @Override
            public void run() {
                Wait<WebDriver> wait = new FluentWait<WebDriver>(driver).withTimeout(timeout, TimeUnit.SECONDS)
                        .pollingEvery(pollingtime, TimeUnit.MILLISECONDS);

                // Wait for element visible
                this.theElement = wait.until(new Function<WebDriver, WebElement>() {

                    @Override
                    public WebElement apply(WebDriver d) {
                        try {
                            List<WebElement> listElem = d.findElements(locator);
                            if (listElem.size() > 0) {
                                WebElement elem = listElem.get(0);
                                if (elem.isEnabled()) {
                                    return elem;
                                }
                                return null;
                            }
                            return null;
                        } catch (StaleElementReferenceException sere) {
                            return null;
                        }
                    }
                });
            }
        }

        RunnableObject r = new RunnableObject();
        executor = Executors.newSingleThreadExecutor();
        executor.submit(r).get(timeout + 2, TimeUnit.SECONDS);
        element = r.getValue();
    } catch (InterruptedException ie) {
        this.log.warn("Interrupted Exception");
        this.log.warn(ie.toString());
    } catch (ExecutionException ee) {
        if (ee.getCause().getClass().getCanonicalName()
                .equalsIgnoreCase(TimeoutException.class.getCanonicalName())) {
            this.log.warn("WebDriver timeout exceeded! Looking for: " + locator.toString());
        } else {
            this.log.warn("Execution Exception");
            this.log.warn(ee.toString());
        }
    } catch (java.util.concurrent.TimeoutException cte) {
        this.log.warn("Thread timeout exceeded! Looking for: " + locator.toString());
        this.log.warn(cte.toString());
    } catch (Exception e) {
        this.log.error("Exception");
        this.log.catching(e);
    }

    if (executor != null) {
        executor.shutdown();
    }

    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

    this.log.debug("WaitForElementPresence::Exit");
    return element;
}

From source file:com.qulix.ft.teachingSite.Conditions.ExpectedConditions.java

License:Apache License

/**
 * An Expectation for checking an element is visible and enabled such that you
 * can click it./*w w w. j a  v  a  2s  .  com*/
 */
public static ExpectedCondition<WebElement> elementToBeClickable(final By locator) {
    return new ExpectedCondition<WebElement>() {

        public ExpectedCondition<WebElement> visibilityOfElementLocated = ExpectedConditions
                .visibilityOfElementLocated(locator);

        public WebElement apply(WebDriver driver) {
            WebElement element = visibilityOfElementLocated.apply(driver);
            try {
                if (element != null && element.isEnabled()) {
                    return element;
                } else {
                    return null;
                }
            } catch (StaleElementReferenceException e) {
                return null;
            }
        }

        @Override
        public String toString() {
            return "element to be clickable: " + locator;
        }
    };
}