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 IssuePickerPopup triggerSearchModeRecent() { elementFinder.find(By.id("issue-source-recent")).click(); return this; }
@Init public void onInit() { submit = elementFinder.find(By.id("copy_submit")); }
private List<PageElement> jiraInfoElements() { return finder.find(By.id("jira-info")).findAll(By.cssSelector("tr")); } }
@Override public TimedCondition isAt() { return elementFinder.find(By.id("body")).timed().isPresent(); }
@Override public TimedCondition isAt() { return elementFinder.find(By.id("copy_submit")).timed().isVisible(); }
@Override public TimedCondition isAt() { return elementFinder.find(By.id("user_browser_table")).timed().isPresent(); }
public ProjectSharedBy getSharedBy() { sharedBy = elementFinder.find(By.className("shared-by")); return pageBinder.bind(ProjectSharedBy.class, sharedBy); }
/** * Click the "Authenticate" link for a remote issue that requires an OAuth token. * * @param issueLink the issue link to authenticate */ public void authenticateLink(IssueLink issueLink) { final PageElement link = locator.find(By.id(issueLink.getElementId())); final PageElement authenticateLink = link.find(By.className("applink-authenticate")); authenticateLink.click(); }
public void waitForInfoPresent() { // Only search inside the results table in case the styling changes and there is a static info message added // at the top of the page waitUntilTrue(locator.find(By.cssSelector("#search-results-table .info")).timed().isPresent()); }
@WaitUntil public void isAt() { // TODO wrong place to initialize stuff table = elementFinder.find(By.id("tab-" + tabId)); Poller.waitUntilTrue(table.timed().isPresent()); Poller.waitUntilFalse(table.timed().hasClass("loading")); fieldPicker = pageBinder.bind(SingleSelect.class, elementFinder.find(By.className("available-fields"))); tab = elementFinder.find(By.cssSelector(".menu-item[data-tab='" + tabId + "']")); tab.javascript().execute("jQuery(arguments[0]).addClass('wd-activate-hover')"); deleteTab = tab.find(By.className("delete-tab")); }
@Override public TimedCondition isAt() { TimedCondition dialogTitleStartsWithDeleteLink = Conditions.forMatcher(elementFinder.find(By.className("dialog-title")).timed().getText(), Matchers.startsWith("Delete Link:")); return Conditions.or(dialogTitleStartsWithDeleteLink, elementFinder.find(By.className("form-body")).timed().isPresent()); }
public ViewIssuePage confirm() { PageElement deleteButton = locator.find(By.id("issue-link-delete-submit")); driver.executeScript("AJS.$('#" + DIALOG_ELEMENT_ID + "').addClass('" + DIRTY_FLAG_CLASS + "');"); Tracer tracer = traceContext.checkpoint(); deleteButton.click(); Poller.waitUntilFalse(dialog.timed().hasClass(DIRTY_FLAG_CLASS)); ViewIssuePage viewIssuePage = pageBinder.bind(ViewIssuePage.class, issueKey); return viewIssuePage.waitForAjaxRefresh(tracer); }
public AddUserPage createUserExpectingError() { submit.click(); Poller.waitUntilTrue(elementFinder.find(By.className("error")).timed().isPresent()); return pageBinder.bind(AddUserPage.class); }
public void stopWatching(ActionTrigger trigger) { if (trigger == ActionTrigger.MENU) { moreActions.click(); } issueActionsUtil.stopWatching(trigger); waitUntilTrue(pageElementFinder.find(By.className("watch-state-off")).timed().isPresent()); }
public void startWatching(ActionTrigger trigger) { if (trigger == ActionTrigger.MENU) { moreActions.click(); } issueActionsUtil.startWatching(trigger); waitUntilTrue(pageElementFinder.find(By.className("watch-state-on")).timed().isPresent()); }
public ViewWorkflowTransitionPage goToEditTransition(final PageElement transitionElement, final String mode, final String name, final String stepNumber, final String transitionNumber) { transitionElement.click(); final PageElement workflowItems = elementFinder.find(By.className("workflow-browser-items"), TimeoutType.PAGE_LOAD); Poller.waitUntilTrue(workflowItems.timed().isPresent()); return pageBinder.bind(ViewWorkflowTransitionPage.class, mode, name, stepNumber, transitionNumber); }
public ViewIssuePage confirm() { PageElement deleteButton = locator.find(By.id("comment-delete-submit")); deleteButton.javascript().execute("AJS.$('#" + DIALOG_ELEMENT_ID + "').addClass('" + DIRTY_FLAG_CLASS + "');"); Tracer tracer = traceContext.checkpoint(); deleteButton.click(); Poller.waitUntilFalse(dialog.timed().hasClass(DIRTY_FLAG_CLASS)); ViewIssuePage viewIssuePage = pageBinder.bind(ViewIssuePage.class, issueKey); return viewIssuePage.waitForAjaxRefresh(tracer); }
public void setSortBy(final Sort.Key sortKey) { if (getSortKey().equals(sortKey)) { return; } sortingOptions.find(By.id(sortKey.getLinkId())).click(); Poller.waitUntilFalse("Sorting options are gone", sortingOptions.timed().isVisible()); Poller.waitUntilTrue(String.format("Attachment list with new sort key(%s) is again visible.", sortKey.toString()), elementFinder.find(By.cssSelector(sortKey.getContainerSelector())).timed().isVisible()); }