Java Code Examples for org.openqa.selenium.support.ui.WebDriverWait#until()
The following examples show how to use
org.openqa.selenium.support.ui.WebDriverWait#until() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: Edition038_Android_Web_Console.java From appiumpro with Apache License 2.0 | 6 votes |
@Test public void testLogging_Hybrid() throws MalformedURLException { DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("platformName", "Android"); capabilities.setCapability("automationName", "UiAutomator2"); capabilities.setCapability("deviceName", "Android Emulator"); capabilities.setCapability("app", APP_ANDROID); LoggingPreferences logPrefs = new LoggingPreferences(); logPrefs.enable(LogType.BROWSER, Level.ALL); capabilities.setCapability(CapabilityType.LOGGING_PREFS, logPrefs); driver = new AndroidDriver<>(new URL("http://localhost:4723/wd/hub"), capabilities); WebDriverWait wait = new WebDriverWait(driver, 10); // get to webview screen and enter webview mode wait.until(ExpectedConditions.presenceOfElementLocated(hybridScreen)).click(); wait.until(ExpectedConditions.presenceOfElementLocated(urlInput)); driver.context(getWebContext(driver)); // now we can run the same routine as for the browser loggingRoutine(driver); }
Example 2
Source File: EditRolePage.java From product-emm with Apache License 2.0 | 6 votes |
public void editRole(String role){ WebDriverWait waitLoad = new WebDriverWait(driver, 10); WebElement permissionItem = driver.findElement(By.xpath(uiElementMapper.getElement("emm.roles.update.permissionItemLogin"))); permissionItem.click(); WebElement editRoleButton = driver.findElement(By.id(uiElementMapper.getElement("emm.roles.update.role.button"))); editRoleButton.click(); try { By roleCreatedMsg = By.xpath(uiElementMapper.getElement(("emm.roles.update.role.created.msg.div"))); waitLoad.until(ExpectedConditions.visibilityOfElementLocated(roleCreatedMsg)); String resultText = driver.findElement(roleCreatedMsg ).getText(); if(!resultText.contains("PERMISSIONS WERE ASSIGNED TO THE ROLE SUCCESSFULLY")){ throw new IllegalStateException("Role was not edited"); } } catch (TimeoutException e) { throw new IllegalStateException("Role was not edited"); } }
Example 3
Source File: WebBaseOpt.java From WebAndAppUITesting with GNU General Public License v3.0 | 6 votes |
/** * 切换到alter,并点击确认框 */ public void clickAlert(String msg) { WebDriverWait webDriverWait = new WebDriverWait(driver, 10); Alert alert; baseOpt.wait(20); // Alert alert = driver.switchTo().alert(); try { // 不稳定,原因待查。还是用上面的吧 // wait and switchTo, Otherwise, throws a TimeoutException alert = webDriverWait.until(ExpectedConditions.alertIsPresent()); } catch (Exception e) { this.screenShot(); LogUtil.info(driver.manage().logs() + "==>alert等待超时!"); alert = driver.switchTo().alert(); // 与waituntil功能重复,但until经常失败,为了增强健壮性才如此写 } if (msg != null) { AssertUtil.assertEquals(alert.getText(), msg, "提示语错误"); } alert.accept(); baseOpt.wait(30); }
Example 4
Source File: UserListingPage.java From product-iots with Apache License 2.0 | 6 votes |
/** * Performs the delete user action. * @return After deleting a user, returns back to the user listing page. */ public UserListingPage deleteUser() throws IOException, InterruptedException { WebElement deleteBtn = driver.findElement(By.xpath( uiElementMapper.getElement("iot.admin.deleteUser.btn.xpath"))); WebDriverWait wait = new WebDriverWait(driver, UIUtils.webDriverTimeOut); wait.until(ExpectedConditions.visibilityOf(deleteBtn)); deleteBtn.click(); WebElement deleteConfirmationBtn = driver.findElement( By.xpath(uiElementMapper.getElement("iot.admin.deleteUser.yes.link.xpath"))); wait.until(ExpectedConditions.visibilityOf(deleteConfirmationBtn)); deleteConfirmationBtn.click(); Thread.sleep(UIUtils.threadTimeout); WebElement deleteSuccessBtn = driver.findElement( By.xpath(uiElementMapper.getElement("iot.admin.deleteUser.success.link.xpath"))); deleteSuccessBtn.click(); return new UserListingPage(driver); }
Example 5
Source File: ESPublisherAddEditAssetTestCase.java From product-es with Apache License 2.0 | 5 votes |
@Test(groups = "wso2.es.publisher", description = "Testing adding a new asset") public void testAddAsset() throws Exception { driver.get(baseUrl + PUBLISHER_GADGET_LIST_PAGE); WebDriverWait wait = new WebDriverWait(driver, 60); wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("Addgadget"))); driver.findElement(By.id("Addgadget")).click(); wait.until(ExpectedConditions.visibilityOfElementLocated(By.name("overview_name"))); driver.findElement(By.name("overview_name")).clear(); driver.findElement(By.name("overview_name")).sendKeys(assetName); driver.findElement(By.name("overview_version")).clear(); driver.findElement(By.name("overview_version")).sendKeys(ASSET_VERSION_1); driver.findElement(By.name("overview_url")).clear(); driver.findElement(By.name("overview_url")).sendKeys(ASSET_URL_1); driver.findElement(By.name("overview_description")).clear(); driver.findElement(By.name("overview_description")).sendKeys(ASSET_DESCRIPTION_1); driver.findElement(By.name("images_thumbnail")).sendKeys(FrameworkPathUtil.getReportLocation() +"/../src/test/resources/images/thumbnail.jpg"); driver.findElement(By.name("images_banner")).sendKeys(FrameworkPathUtil.getReportLocation() +"/../src/test/resources/images/banner.jpg"); driver.findElement(By.id("btn-create-asset")).click(); //driver.get(baseUrl + PUBLISHER_GADGET_LIST_PAGE); wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("Addgadget"))); driver.findElementPoll(By.linkText(assetName), MAX_POLL_COUNT); //check if the created gadget is shown assertTrue(isElementPresent(driver, By.linkText(assetName)), "Adding an asset failed for user:" + currentUserName); driver.findElement(By.linkText(assetName)).click(); assertEquals(assetName, driver.findElement(By.cssSelector("#collapseOverview div:nth-child(2) div:nth-child(2)")).getText()); assertEquals(ASSET_VERSION_1, driver.findElement(By.cssSelector("#collapseOverview div:nth-child(3) div:nth-child(2)")).getText(), "Incorrect version"); assertEquals(ASSET_CATEGORY_1, driver.findElement(By.cssSelector("#collapseOverview div:nth-child(4) div:nth-child(2)")).getText()); assertEquals(ASSET_URL_1, driver.findElement(By.cssSelector("#collapseOverview div:nth-child(5) div:nth-child(2)")).getText(), "Incorrect URL"); assertEquals(ASSET_DESCRIPTION_1, driver.findElement(By.cssSelector("#collapseOverview div:nth-child(6) div:nth-child(2)")).getText(), "Incorrect description"); }
Example 6
Source File: WaitStepDefinitions.java From IridiumApplicationTesting with MIT License | 5 votes |
/** * Waits the given amount of time for a link with the supplied text to be placed in the DOM. Note that the * element does not have to be visible just present in the HTML. * * @param waitDuration The maximum amount of time to wait for * @param alias If this word is found in the step, it means the linkContent is found from the * data set. * @param linkContent The text content of the link we are wait for * @param ignoringTimeout The presence of this text indicates that timeouts are ignored */ @When("^I wait \"(\\d+)\" seconds for a link with the text content of" + "( alias)? \"([^\"]*)\" to be present(,? ignoring timeouts?)?") public void presentLinkStep( final String waitDuration, final String alias, final String linkContent, final String ignoringTimeout) { try { final WebDriver webDriver = State.getThreadDesiredCapabilityMap().getWebDriverForThread(); final String content = autoAliasUtils.getValue( linkContent, StringUtils.isNotBlank(alias), State.getFeatureStateForThread()); final WebDriverWait wait = new WebDriverWait( webDriver, Integer.parseInt(waitDuration), Constants.ELEMENT_WAIT_SLEEP_TIMEOUT); wait.until(ExpectedConditions.presenceOfElementLocated(By.linkText(content))); } catch (final TimeoutException ex) { /* Rethrow if we have not ignored errors */ if (StringUtils.isBlank(ignoringTimeout)) { throw ex; } } }
Example 7
Source File: AccessKeysIT.java From Mastering-Selenium-WebDriver-3.0-Second-Edition with MIT License | 5 votes |
@Test public void testThatUsingAccessKeysWorks() { driver.get("http://web.masteringselenium.com/accessKeysHome.html"); WebDriverWait wait = new WebDriverWait(driver, 5, 100); List<WebElement> home = driver.findElements(By.id("home")); assertThat(home.size()).isEqualTo(1); triggerAccessKey("9"); WebElement access = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("about"))); home = driver.findElements(By.id("home")); assertThat(home.size()).isEqualTo(0); assertThat(access.isDisplayed()).isTrue(); }
Example 8
Source File: AbstractZeppelinIT.java From zeppelin with Apache License 2.0 | 5 votes |
protected void deleteTrashNotebook(final WebDriver driver) { WebDriverWait block = new WebDriverWait(driver, MAX_BROWSER_TIMEOUT_SEC); driver.findElement(By.xpath(".//*[@id='main']//button[@ng-click='removeNote(note.id)']")) .sendKeys(Keys.ENTER); block.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(".//*[@id='main']//button[@ng-click='removeNote(note.id)']"))); driver.findElement(By.xpath("//div[@class='modal-dialog'][contains(.,'This cannot be undone. Are you sure?')]" + "//div[@class='modal-footer']//button[contains(.,'OK')]")).click(); ZeppelinITUtils.sleep(100, false); }
Example 9
Source File: WebBaseOpt.java From WebAndAppUITesting with GNU General Public License v3.0 | 5 votes |
/** * 等待frame可以用,切换到指定的frame * * @param by */ public void switchTo(By frameby) { WebDriverWait webDriverWait = new WebDriverWait(driver, DRIVER_WAIT_TIMEOUT_IN_SECOND); try { // wait and switchTo, Otherwise, throws a TimeoutException webDriverWait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(frameby)); // driver.switchTo().frame(this.findElement(frameby)); LogUtil.info(driver.manage().logs() + "==>switchTo frame:" + frameby.toString() + "成功."); } catch (Exception e) { this.screenShot(); LogUtil.info(driver.manage().logs() + "==>switchTo frame:" + frameby.toString() + "等待超时!"); driver.switchTo().frame(this.findElement(frameby)); // 与waituntil功能重复,但until经常失败,为了增强健壮性才如此写 } }
Example 10
Source File: Edition081_Windows.java From appiumpro with Apache License 2.0 | 5 votes |
@Test public void testWeatherApp() { WebDriverWait wait = new WebDriverWait(driver, 10); wait.until(ExpectedConditions.presenceOfElementLocated(MobileBy.AccessibilityId("NameAndConditions"))); for (WebElement el : driver.findElements(By.xpath("//ListItem[contains(@Name, 'day ')]"))) { el.click(); WebElement sunrise = driver.findElement(MobileBy.AccessibilityId("Almanac_Sunrise")); WebElement sunset = driver.findElement(MobileBy.AccessibilityId("Almanac_Sunset")); System.out.println(el.getAttribute("Name")); System.out.println("Sunrise: " + sunrise.getAttribute("Name")); System.out.println("Sunset: " + sunset.getAttribute("Name")); System.out.println("----------------------------"); } }
Example 11
Source File: SendKeys.java From opentest with MIT License | 5 votes |
@Override public void run() { super.run(); By locator = this.readLocatorArgument("locator"); String text = this.readStringArgument("text", null); String key = this.readStringArgument("key", null); Boolean clearContent = this.readBooleanArgument("clearContent", Boolean.FALSE); Boolean sendEnter = this.readBooleanArgument("sendEnter", Boolean.FALSE); this.waitForAsyncCallsToFinish(); try { WebElement element = this.getElement(locator); WebDriverWait wait = new WebDriverWait(this.driver, this.getExplicitWaitSec()); wait.until(ExpectedConditions.elementToBeClickable(element)); if (clearContent) { element.clear(); } if (text != null) { element.sendKeys(text); } else if (key != null) { element.sendKeys(Keys.valueOf(key.toUpperCase())); } else { throw new RuntimeException("Neither the \"text\" argument, nor the \"key\" argument were provided."); } if (sendEnter) { element.sendKeys(Keys.ENTER); } } catch (Exception ex) { throw new RuntimeException(String.format( "Failed sending keys to element %s", locator), ex ); } }
Example 12
Source File: WaitersTest.java From healenium-web with Apache License 2.0 | 5 votes |
@Test public void name() { driver.get("https://accounts.google.com/signin/v2/identifier?hl=en"); WebDriverWait waiter = new WebDriverWait(driver, 10); waiter.until(ExpectedConditions.visibilityOf(driver.findElement(By.cssSelector("input#Email")))); driver.findElement(By.cssSelector("a.need-help")).click(); waiter.until(ExpectedConditions.invisibilityOfElementLocated(By.cssSelector("input#Email"))); driver.findElement(By.id("identifier")).sendKeys("email"); Assertions.assertEquals( "email", driver.findElement(By.id("identifier")).getAttribute("value")); }
Example 13
Source File: SeleniumTestAction.java From opentest with MIT License | 5 votes |
/** * Locates and returns a UI element. */ protected WebElement getElement(By locator, int explicitWaitSec) { WebDriverWait wait = new WebDriverWait(driver, explicitWaitSec); WebElement element = wait.until( ExpectedConditions.presenceOfElementLocated(locator)); return element; }
Example 14
Source File: AbstractSubmarineIT.java From submarine with Apache License 2.0 | 5 votes |
protected void createNewNote() { clickAndWait(By.xpath("//div[contains(@class, \"col-md-4\")]/div/h5/a[contains(.,'Create new" + " note')]")); WebDriverWait block = new WebDriverWait(driver, MAX_BROWSER_TIMEOUT_SEC); block.until(ExpectedConditions.visibilityOfElementLocated(By.id("noteCreateModal"))); clickAndWait(By.id("createNoteButton")); block.until(ExpectedConditions.invisibilityOfElementLocated(By.id("createNoteButton"))); }
Example 15
Source File: LoginTest.java From archiva with Apache License 2.0 | 5 votes |
@Test public void testWithEmptyPassword() { goToLoginPage(); setFieldValue( "user-login-form-username", getProperty( "ADMIN_USERNAME" ) ); Assert.assertTrue(getWebDriver().findElement( By.id("modal-login-ok") ).isDisplayed()); Assert.assertTrue(getWebDriver().findElement( By.id("modal-login-ok") ).isEnabled()); clickLinkWithLocator( "modal-login-ok", false ); WebDriverWait wait = new WebDriverWait(getWebDriver(), 2); wait.until(ExpectedConditions.textToBePresentInElementLocated(By.id("modal-login"), "This field is required.")); }
Example 16
Source File: AppPage.java From teammates with GNU General Public License v2.0 | 5 votes |
/** * Returns if a {@value CHANGE_EVENT} event has not been fired for the element to which the hook is associated. * Note that this only detects the presence of firing of {@value CHANGE_EVENT} events and not does not keep track of * how many {@value CHANGE_EVENT} events are fired. */ private boolean isChangeEventNotFired() { WebDriverWait wait = new WebDriverWait(browser.driver, MAXIMUM_SECONDS_REQUIRED_FOR_ALL_CPUS_TO_FIRE_EVENT); try { wait.until(ExpectedConditions.attributeContains(By.tagName("body"), HOOK_ATTRIBUTE, "true")); return false; } catch (TimeoutException e) { return true; } }
Example 17
Source File: AppPage.java From teammates with GNU General Public License v2.0 | 4 votes |
public <E> E waitFor(ExpectedCondition<E> expectedCondition) { WebDriverWait wait = new WebDriverWait(browser.driver, TestProperties.TEST_TIMEOUT); return wait.until(expectedCondition); }
Example 18
Source File: ClickingStepDefinitions.java From IridiumApplicationTesting with MIT License | 4 votes |
/** * Clicks on an element that may or may not be visible on the page * * @param selector Either ID, class, xpath, name or css selector * @param alias If this word is found in the step, it means the selectorValue is found from the * data set. * @param selectorValue The value used in conjunction with the selector to match the element. If alias was * set, this value is found from the data set. Otherwise it is a literal value. * @param timesAlias If this word is found in the step, it means the times is found from the * data set. * @param times If this text is set, the click operation will be repeated the specified number of times. * @param exists If this text is set, an error that would be thrown because the element was not * found is ignored. Essentially setting this text makes this an optional statement. */ @When("^I click (?:a|an|the) hidden element with (?:a|an|the) (ID|class|xpath|name|css selector)( alias)? " + "of \"([^\"]*)\"(?:( alias)? \"(.*?)\" times)?( if it exists)?$") public void clickHiddenElementStep( final String selector, final String alias, final String selectorValue, final String timesAlias, final String times, final String exists) { try { final Integer fixedTimes = countConverter.convertCountToInteger(timesAlias, times); final WebDriver webDriver = State.getThreadDesiredCapabilityMap().getWebDriverForThread(); final By by = getBy.getBy( selector, StringUtils.isNotBlank(alias), selectorValue, State.getFeatureStateForThread()); final WebDriverWait wait = new WebDriverWait( webDriver, State.getFeatureStateForThread().getDefaultWait(), Constants.ELEMENT_WAIT_SLEEP_TIMEOUT); final WebElement element = wait.until(ExpectedConditions.presenceOfElementLocated(by)); mouseMovementUtils.mouseGlide( webDriver, (JavascriptExecutor) webDriver, element, Constants.MOUSE_MOVE_TIME, Constants.MOUSE_MOVE_STEPS); final JavascriptExecutor js = (JavascriptExecutor) webDriver; /* PhantomJS doesn't support the click method, so "element.click()" won't work here. We need to dispatch the event instead. */ for (int i = 0; i < fixedTimes; ++i) { javaScriptRunner.interactHiddenElementMouseEvent(element, "click", js); sleepUtils.sleep(State.getFeatureStateForThread().getDefaultSleep()); } } catch (final TimeoutException | NoSuchElementException ex) { if (StringUtils.isBlank(exists)) { throw ex; } } }
Example 19
Source File: AssertElementSelected.java From opentest with MIT License | 3 votes |
@Override public void run() { super.run(); By locator = this.readLocatorArgument("locator"); this.waitForAsyncCallsToFinish(); WebDriverWait wait = new WebDriverWait(this.driver, this.getExplicitWaitSec()); wait.until(ExpectedConditions.elementSelectionStateToBe(locator, true)); }
Example 20
Source File: AssertElementPresent.java From opentest with MIT License | 3 votes |
@Override public void run() { super.run(); By locator = this.readLocatorArgument("locator"); this.waitForAsyncCallsToFinish(); WebDriverWait wait = new WebDriverWait(this.driver, this.getExplicitWaitSec()); wait.until(ExpectedConditions.presenceOfElementLocated(locator)); }