public void expandNavigatorSection(final String sectionId) { if (!elementFinder.findAll(By.id(sectionId)).isEmpty()) { final String toggleClass = elementFinder.find(By.xpath("//fieldset[@id='" + sectionId + "']")).getAttribute("class"); if (toggleClass.contains("collapsed")) { elementFinder.find(By.xpath("//fieldset[@id='" + sectionId + "']/legend/span")).click(); } } }
public PageElement find(By by, Predicate<PageElement> filter) { // TODO retarded. Need to upgrade Guava in JIRA to use the .find() with default value param! try { return Iterables.find(elementFinder.findAll(by), filter); } catch(NoSuchElementException e) { return null; } }
public List<String> getRecentSpaces() { List<PageElement> spaces = pageElementFinder.findAll(By.cssSelector("#recent-spaces-section li")); return Lists.transform(spaces, PageElement::getText); } }
public IssuePickerPopup triggerSearchModeRecent() { elementFinder.find(By.id("issue-source-recent")).click(); return this; }
@Override public List<String> getInfoMessages() { return getTextsFromElements(finder.findAll(By.cssSelector("header + .aui-message.info.last-edited"))); }
@Init public void onInit() { submit = elementFinder.find(By.id("copy_submit")); }
@Override public void addUserOrGroup(Subject subject, int index) { String userName = getUsernameForSubject(subject); userPickerInput.type(userName); PageElementFinder select2DropDown = pageElementFinder.find(By.id("select2-drop")); waitUntilTrue(select2DropDown.find(By.cssSelector(".select2-result-label")).timed().isPresent()); List<PageElement> entities = select2DropDown.findAll(By.cssSelector("[data-username=\"" + userName + "\"]")); entities.get(index).click(); waitUntilTrue("First entry in user picker should have expected text", firstUserInPicker.timed().hasText(subject.getDisplayName())); addButton.click(); }
/** * @param row is 1 index based * @param column is 1 index based */ public TimedQuery<String> getTimedPageLayoutsCellContent(final int row, final int column) { return Queries.forSupplier(timeouts, () -> execute.onTinyMceIFrame(() -> page.findAll(By.cssSelector(".columnLayout:nth-child(" + (row) + ") .cell .innerCell")).get(column - 1).getText().trim())); }
public IssuePickerPopup triggerSearchModeFilter() { elementFinder.find(By.id("issue-source-search")).click(); return this; }
public List<String> getRemoteEntityLinkOptions() { waitUntilTrue(keyField.timed().isVisible()); keyField.type(Keys.ARROW_DOWN); // wait for first element remote-entity waitUntilTrue(elementFinder.find(By.className("remote-entity"), TimeoutType.DIALOG_LOAD).timed().isVisible()); return transform(elementFinder.findAll(By.className("remote-entity")), new GetTextFunction()); } }
/** * Disables all the blueprints */ public <T> T disableAllContentBlueprints(Class<T> templatePage, Space space) { List<PageElement> allPlugins = pageElementFinder.findAll(By.className(PLUGIN_CLASSNAME)); allPlugins.stream() .map(plugin -> new ItContentBlueprint(plugin.getAttribute(BLUEPRINT_KEY_ATTRIBUTE))) .forEach(blueprint -> disable(blueprint, templatePage, space)); return returnBoundPage(templatePage, space); }
@Init public void initialize() { this.dialogContents = elementFinder.find(By.id("inline-dialog-" + contentsId)); }
public <T> T enableAllContentBlueprints(final Class<T> templatePage, final Space space) { List<PageElement> allPlugins = pageElementFinder.findAll(By.className(PLUGIN_CLASSNAME)); allPlugins.stream() .map(plugin -> new ItContentBlueprint(plugin.getAttribute(BLUEPRINT_KEY_ATTRIBUTE))) .forEach(blueprint -> enable(blueprint, templatePage, space)); return returnBoundPage(templatePage, space); }
@Init public void onInit() { submit = elementFinder.find(By.id("update_submit")); }
/** * Type content in the given column index. It assumes that a column page layout has been applied. Note the column * index is 1-based. */ public void typeInColumn(final int column, final String content) { execute.onTinyMceIFrame(() -> { typeIn(page.findAll(getRenderedContent().getColumnLocator()).get(column - 1), content); return null; }); }
private PageElement errorElement() { // we should be looking for errors on the AddCommentDialog (for which we don't have page object yaay!) // like this: By.id(comment-add).find(By.className("error"));, BUT it fails due to SELENIUM-185 // (another yaaaaay) return pageElementFinder.find(By.className("error")); } }
public AddSpaceForm next() { AddSpaceForm form = submit(AddSpaceForm.class); if (pageElementFinder.findAll(By.cssSelector("#" + getId() + " .icon-required")).size() > 0) Poller.waitUntilFalse(getSubmitButton().timed().isEnabled()); return form; }