Search in sources :

Example 6 with NoSuchElementException

use of org.openqa.selenium.NoSuchElementException in project ORCID-Source by ORCID.

the class WebDriverHelper method elementExists.

public boolean elementExists(String page, String elementId) {
    //Open the page
    webDriver.get(page);
    //Find this element
    By switchFromLinkLocator = By.id(elementId);
    try {
        if (webDriver.findElement(switchFromLinkLocator) != null)
            return true;
    } catch (NoSuchElementException e) {
        return false;
    }
    return false;
}
Also used : By(org.openqa.selenium.By) NoSuchElementException(org.openqa.selenium.NoSuchElementException)

Example 7 with NoSuchElementException

use of org.openqa.selenium.NoSuchElementException in project opennms by OpenNMS.

the class JmxConfigurationGeneratorIT method configureJMXConnection.

protected void configureJMXConnection(final boolean skipDefaultVM) throws Exception {
    final long end = System.currentTimeMillis() + LOAD_TIMEOUT;
    final WebDriverWait shortWait = new WebDriverWait(m_driver, 10);
    final String skipDefaultVMxpath = "//span[@id='skipDefaultVM']/input";
    final boolean selected = waitForElement(By.xpath(skipDefaultVMxpath)).isSelected();
    LOG.debug("skipDefaultVM selected: {}", selected);
    if (selected != skipDefaultVM) {
        waitForElement(By.xpath(skipDefaultVMxpath)).click();
    }
    // configure authentication
    final WebElement authenticateElement = waitForElement(By.id("authenticate"));
    if (!authenticateElement.isSelected()) {
        authenticateElement.findElement(By.tagName("input")).click();
    }
    /*
         * Sometimes, Vaadin just loses input, or focus.  Or both!  I suspect it's
         * because of the way Vaadin handles events and DOM-redraws itself, but...
         * ¯\_(ツ)_/¯
         *
         * To make sure it really really *really* works, there are multiple layers
         * of belt-and-suspenders-and-glue-and-staples:
         *
         * 1. Click first to ensure the field is focused
         * 2. Clear the current contents of the field
         * 3. Send the text to the field
         * 4. Click it *again* because sometimes this wakes up the event handler
         * 5. Do it all in a loop that checks for validation errors, because
         *    *sometimes* even with all that, it will fail to fill in a field...
         *    In that case, hit escape to clear the error message and start all
         *    over and try again.
         */
    boolean found = false;
    do {
        setVaadinValue("authenticateUser", "admin");
        setVaadinValue("authenticatePassword", "admin");
        // go to next page
        waitForElement(By.id("next")).click();
        try {
            setImplicitWait(1, TimeUnit.SECONDS);
            found = shortWait.until(new ExpectedCondition<Boolean>() {

                @Override
                public Boolean apply(final WebDriver driver) {
                    try {
                        final WebElement elem = driver.findElement(By.cssSelector("div.v-Notification-error h1"));
                        LOG.debug("Notification error element: {}", elem);
                        if (elem != null) {
                            elem.sendKeys(Keys.ESCAPE);
                            return false;
                        }
                    } catch (final NoSuchElementException | StaleElementReferenceException e) {
                        LOG.warn("Exception while checking for errors message.", e);
                    }
                    try {
                        final Boolean contains = pageContainsText(MBEANS_VIEW_TREE_WAIT_NAME).apply(driver);
                        LOG.debug("Page contains '{}'? {}", MBEANS_VIEW_TREE_WAIT_NAME, contains);
                        return contains;
                    } catch (final Exception e) {
                        LOG.warn("Exception while checking for next page.", e);
                    }
                    return false;
                }
            });
        } catch (final Exception e) {
            LOG.debug("Failed to configure authentication and port.", e);
        } finally {
            setImplicitWait();
        }
    } while (System.currentTimeMillis() < end && !found);
}
Also used : WebDriver(org.openqa.selenium.WebDriver) WebDriverWait(org.openqa.selenium.support.ui.WebDriverWait) StaleElementReferenceException(org.openqa.selenium.StaleElementReferenceException) ExpectedCondition(org.openqa.selenium.support.ui.ExpectedCondition) WebElement(org.openqa.selenium.WebElement) NoSuchElementException(org.openqa.selenium.NoSuchElementException) StaleElementReferenceException(org.openqa.selenium.StaleElementReferenceException) NoSuchElementException(org.openqa.selenium.NoSuchElementException)

Example 8 with NoSuchElementException

use of org.openqa.selenium.NoSuchElementException in project opennms by OpenNMS.

the class BSMAdminIT method verifyElementNotPresent.

/**
     * Verifies that the provided element is not present.
     * @param by
     */
private static void verifyElementNotPresent(OpenNMSSeleniumTestCase testCase, final By by) {
    new WebDriverWait(testCase.getDriver(), 5).until(ExpectedConditions.not(new ExpectedCondition<Boolean>() {

        @Nullable
        @Override
        public Boolean apply(@Nullable WebDriver input) {
            try {
                // the default implicit wait timeout is too long, make it shorter
                input.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
                WebElement elementFound = input.findElement(by);
                return elementFound != null;
            } catch (NoSuchElementException ex) {
                return false;
            } finally {
                // set the implicit wait timeout back to the value it has been before
                input.manage().timeouts().implicitlyWait(LOAD_TIMEOUT, TimeUnit.MILLISECONDS);
            }
        }
    }));
}
Also used : WebDriver(org.openqa.selenium.WebDriver) WebDriverWait(org.openqa.selenium.support.ui.WebDriverWait) ExpectedCondition(org.openqa.selenium.support.ui.ExpectedCondition) WebElement(org.openqa.selenium.WebElement) Nullable(javax.annotation.Nullable) NoSuchElementException(org.openqa.selenium.NoSuchElementException)

Example 9 with NoSuchElementException

use of org.openqa.selenium.NoSuchElementException in project selenium-tests by Wikia.

the class Elements method getElementByText.

public static WebElement getElementByText(List<WebElement> elements, String value) {
    WebElement foundElement = null;
    for (WebElement element : elements) {
        if (element.getText().equalsIgnoreCase(value)) {
            foundElement = element;
            PageObjectLogging.log("getElementByText", "Element with text: " + value + " is found from the list", true);
            break;
        }
    }
    if (foundElement == null) {
        throw new NoSuchElementException("Element with text: " + value + " is not found from the list");
    }
    return foundElement;
}
Also used : WebElement(org.openqa.selenium.WebElement) NoSuchElementException(org.openqa.selenium.NoSuchElementException)

Example 10 with NoSuchElementException

use of org.openqa.selenium.NoSuchElementException in project selenium-tests by Wikia.

the class Elements method getElementByChildText.

public static WebElement getElementByChildText(List<WebElement> elements, By childBySelector, String value) {
    WebElement foundElement = null;
    for (WebElement element : elements) {
        if (element.findElement(childBySelector).getText().equalsIgnoreCase(value)) {
            foundElement = element;
            PageObjectLogging.log("getElementByChildText", "Element's child with text: " + value + " is found from the list", true);
            break;
        }
    }
    if (foundElement == null) {
        throw new NoSuchElementException("Element's child with text: " + value + " is not found from the list");
    }
    return foundElement;
}
Also used : WebElement(org.openqa.selenium.WebElement) NoSuchElementException(org.openqa.selenium.NoSuchElementException)

Aggregations

NoSuchElementException (org.openqa.selenium.NoSuchElementException)32 WebElement (org.openqa.selenium.WebElement)18 AndroidElement (io.appium.java_client.android.AndroidElement)5 Select (org.openqa.selenium.support.ui.Select)5 ElementMenuOptions (com.owncloud.android.test.ui.models.ElementMenuOptions)4 WaitAMomentPopUp (com.owncloud.android.test.ui.models.WaitAMomentPopUp)3 Test (org.junit.Test)3 WebDriverWait (org.openqa.selenium.support.ui.WebDriverWait)3 PublicAtsApi (com.axway.ats.common.PublicAtsApi)2 SeleniumOperationException (com.axway.ats.uiengine.exceptions.SeleniumOperationException)2 RealHtmlElementState (com.axway.ats.uiengine.utilities.realbrowser.html.RealHtmlElementState)2 FailingTestCategory (com.owncloud.android.test.ui.groups.FailingTestCategory)2 InProgressCategory (com.owncloud.android.test.ui.groups.InProgressCategory)2 NoIgnoreTestCategory (com.owncloud.android.test.ui.groups.NoIgnoreTestCategory)2 SmokeTestCategory (com.owncloud.android.test.ui.groups.SmokeTestCategory)2 UnfinishedTestCategory (com.owncloud.android.test.ui.groups.UnfinishedTestCategory)2 FileListView (com.owncloud.android.test.ui.models.FileListView)2 ShareView (com.owncloud.android.test.ui.models.ShareView)2 VisualEditorPageObject (com.wikia.webdriver.pageobjectsfactory.pageobject.visualeditor.VisualEditorPageObject)2 Category (org.junit.experimental.categories.Category)2