List of usage examples for org.openqa.selenium WebDriver findElements
@Override List<WebElement> findElements(By by);
From source file:org.vige.rubia.selenium.forum.action.UpdatePoll.java
License:Apache License
public static Poll updateOptions(WebDriver driver, Poll poll) { WebElement updateTopicButton = driver.findElements(xpath("//tbody")).get(2) .findElement(id(UPDATE_TOPIC_BUTTON)).findElement(xpath("ul/a[1]")); updateTopicButton.click();/*from w ww. ja v a2 s .co m*/ List<PollOption> options = poll.getOptions(); if (options != null) for (int i = 0; i < options.size(); i++) { WebElement optionInput = null; WebElement optionButton = null; optionInput = driver.findElement(id(OPTION_INPUT_TEXT + (i + 1))); optionInput.clear(); optionInput.sendKeys(options.get(i).getQuestion()); optionButton = driver.findElement(id(UPDATE_OPTION_BUTTON + (i + 1))); optionButton.click(); } WebElement submitTopicButton = driver.findElement(id(SUBMIT_TOPIC_BUTTON)); submitTopicButton.click(); Poll updatedPoll = getPollOfCurrentTopic(driver); return updatedPoll; }
From source file:org.vige.rubia.selenium.forum.action.UpdatePoll.java
License:Apache License
public static Poll updatePoll(WebDriver driver, Poll poll) { WebElement updateTopicButton = driver.findElements(xpath("//tbody")).get(2) .findElement(id(UPDATE_TOPIC_BUTTON)).findElement(xpath("ul/a[1]")); updateTopicButton.click();// w ww .ja va2 s .c om WebElement questionInput = null; questionInput = driver.findElement(id(QUESTION_INPUT_TEXT)); questionInput.clear(); questionInput.sendKeys(poll.getTitle()); WebElement daysInput = driver.findElement(id(DAYS_INPUT_TEXT)); daysInput.clear(); daysInput.sendKeys(poll.getLength() + ""); WebElement submitTopicButton = driver.findElement(id(SUBMIT_TOPIC_BUTTON)); submitTopicButton.click(); Poll updatedPoll = getPollOfCurrentTopic(driver); return updatedPoll; }
From source file:org.vige.rubia.selenium.forum.action.VerifyAttachment.java
License:Apache License
public static List<Attachment> getAttachmentsOfTopics(WebDriver driver, Topic... topics) { List<Attachment> attachments = new LinkedList<Attachment>(); WebElement home = driver.findElement(linkText(HOME_LINK)); home.click();/* w w w.ja v a2 s . c om*/ WebElement tableComponent = driver.findElement(className(FORUM_TABLE)); List<WebElement> forumSubjectComponents = tableComponent.findElements(xpath(FORUM_SUBJECT)); int forumComponentSize = forumSubjectComponents.size(); for (int j = 0; j < forumComponentSize; j++) { home = driver.findElement(linkText(HOME_LINK)); home.click(); tableComponent = driver.findElement(className(FORUM_TABLE)); forumSubjectComponents = tableComponent.findElements(xpath(FORUM_SUBJECT)); WebElement forumEl = forumSubjectComponents.get(j); forumEl.click(); List<WebElement> subjectComponents = driver.findElements(xpath(SUBJECT_LINK)); int subjectComponentsSize = subjectComponents.size(); for (int i = 0; i < subjectComponentsSize; i++) { subjectComponents = driver.findElements(xpath(SUBJECT_LINK)); List<String> topicNames = findTopicNames(topics); if (topicNames.contains(subjectComponents.get(i).getText())) { subjectComponents = driver.findElements(xpath(SUBJECT_LINK)); WebElement subjectComponent = subjectComponents.get(i); subjectComponent.click(); List<WebElement> postComponents = driver.findElements(className(BODY_OUTPUT_TEXT)); for (WebElement postComponent : postComponents) { attachments.addAll(getAttachmentsOfCurrentPost(driver, postComponent)); } String forumLinkText = driver.findElement(id(FORUM_LINK)).getText(); driver.findElement(linkText(forumLinkText)).click(); } } } return attachments; }
From source file:org.vige.rubia.selenium.forum.action.VerifyCategory.java
License:Apache License
public static List<Category> getCategories(WebDriver driver, ForumInstance... forumInstances) { List<Category> categories = new ArrayList<Category>(); WebElement home = driver.findElement(linkText(HOME_LINK)); home.click();/*from ww w .j a v a 2 s .c om*/ List<WebElement> categoryComponents = driver.findElements(className(CATEGORY_ROW)); int categoryComponentsSize = categoryComponents.size(); for (int i = 0; i < categoryComponentsSize; i++) { home = driver.findElement(linkText(HOME_LINK)); home.click(); Category category = new Category(); categoryComponents = driver.findElements(className(CATEGORY_ROW)); String categoryTitle = categoryComponents.get(i).getText(); category.setTitle(categoryTitle); categories.add(category); } return categories; }
From source file:org.vige.rubia.selenium.forum.action.VerifyPoll.java
License:Apache License
public static List<Poll> getPollsOfTopics(WebDriver driver, Topic... topics) { List<Poll> polls = new ArrayList<Poll>(); WebElement home = driver.findElement(linkText(MAIN_PAGE)); home.click();//from www. j a va 2 s .c om WebElement tableComponent = driver.findElement(className(FORUM_TABLE)); List<WebElement> forumSubjectComponents = tableComponent.findElements(xpath(FORUM_SUBJECT)); int forumComponentSize = forumSubjectComponents.size(); for (int j = 0; j < forumComponentSize; j++) { home = driver.findElement(linkText(MAIN_PAGE)); home.click(); tableComponent = driver.findElement(className(FORUM_TABLE)); forumSubjectComponents = tableComponent.findElements(xpath(FORUM_SUBJECT)); WebElement forumEl = forumSubjectComponents.get(j); forumEl.click(); List<WebElement> subjectComponents = driver.findElements(xpath(SUBJECT_LINK)); int subjectComponentsSize = subjectComponents.size(); for (int i = 0; i < subjectComponentsSize; i++) { subjectComponents = driver.findElements(xpath(SUBJECT_LINK)); List<String> topicNames = findTopicNames(topics); if (topicNames.contains(subjectComponents.get(i).getText())) { subjectComponents = driver.findElements(xpath(SUBJECT_LINK)); WebElement subjectComponent = subjectComponents.get(i); subjectComponent.click(); polls.add(getPollOfCurrentTopic(driver)); String forumLinkText = driver.findElement(id(FORUM_LINK)).getText(); driver.findElement(linkText(forumLinkText)).click(); } } } return polls; }
From source file:org.vige.rubia.selenium.forum.action.VerifyPoll.java
License:Apache License
public static Poll getPollOfCurrentTopic(WebDriver driver) { WebElement question = null;//w ww.j a v a 2 s. c o m Poll poll = null; try { question = driver.findElement(className(QUESTION_OUTPUT_TEXT)); } catch (NoSuchElementException ex) { } if (question != null) { poll = new Poll(); poll.setTitle(question.getText()); List<WebElement> pollComponents = driver.findElements(className(ANSWER_OUTPUT_TEXT)); List<PollOption> pollOptions = new LinkedList<PollOption>(); for (WebElement pollComponent : pollComponents) { PollOption pollOption = new PollOption(); pollOption.setQuestion(pollComponent.getText()); pollOption.setPoll(poll); pollOptions.add(pollOption); } WebElement votesResultComponent = driver.findElement(linkText(RESULT_VOTES_LINK)); votesResultComponent.click(); List<WebElement> pollComponentsTr = driver.findElement(className(FORUM_POLL_TABLE)) .findElements(xpath("tbody/tr")); pollComponents.clear(); for (int i2 = 0; i2 < pollComponentsTr.size(); i2++) { if (i2 != 0 && i2 < pollComponentsTr.size() - 2) pollComponents.add(pollComponentsTr.get(i2).findElement(xpath("td"))); } for (int i3 = 0; i3 < pollOptions.size(); i3++) { WebElement pollComponent = pollComponents.get(i3); PollOption pollOption = pollOptions.get(i3); String numberOfVotes = driver.findElement(className(FORUM_POLL_TABLE)) .findElement(xpath("tbody/tr[td/text()='" + pollComponent.getText() + "']/td[3]")) .getText(); String pollOptionPosition = driver.findElement(className(FORUM_POLL_TABLE)) .findElement(xpath("tbody/tr[td/text()='" + pollComponent.getText() + "']/td[4]")) .getText(); pollOption.setVotes(new Integer(numberOfVotes.substring(0, numberOfVotes.length() - 1))); pollOption.setPollOptionPosition( new Integer(pollOptionPosition.substring(1, pollOptionPosition.length() - 1).trim())); } WebElement votesComponent = driver.findElement(linkText(VOTES_LINK)); votesComponent.click(); poll.setOptions(pollOptions); } return poll; }
From source file:org.vige.rubia.selenium.forum.action.VerifyPost.java
License:Apache License
public static List<Post> getPostsOfTopics(WebDriver driver, Topic... topics) { List<Post> posts = new ArrayList<Post>(); WebElement home = driver.findElement(linkText(HOME_LINK)); home.click();/*from w w w . jav a2s . c o m*/ WebElement tableComponent = driver.findElement(className(FORUM_TABLE)); List<WebElement> forumSubjectComponents = tableComponent.findElements(xpath(FORUM_SUBJECT)); int forumComponentSize = forumSubjectComponents.size(); for (int j = 0; j < forumComponentSize; j++) { home = driver.findElement(linkText(HOME_LINK)); home.click(); tableComponent = driver.findElement(className(FORUM_TABLE)); forumSubjectComponents = tableComponent.findElements(xpath(FORUM_SUBJECT)); WebElement forumEl = forumSubjectComponents.get(j); forumEl.click(); List<WebElement> subjectComponents = driver.findElements(xpath(SUBJECT_LINK)); int subjectComponentsSize = subjectComponents.size(); for (int i = 0; i < subjectComponentsSize; i++) { subjectComponents = driver.findElements(xpath(SUBJECT_LINK)); List<String> topicNames = findTopicNames(topics); if (topicNames.contains(subjectComponents.get(i).getText())) { subjectComponents = driver.findElements(xpath(SUBJECT_LINK)); WebElement subjectComponent = subjectComponents.get(i); subjectComponent.click(); posts.addAll(getPostsOfCurrentTopic(driver)); String forumLinkText = driver.findElement(id(FORUM_LINK)).getText(); driver.findElement(linkText(forumLinkText)).click(); } } } return posts; }
From source file:org.vige.rubia.selenium.forum.action.VerifyPost.java
License:Apache License
public static List<Post> getPostsOfCurrentTopic(WebDriver driver) { List<WebElement> postComponents = driver.findElements(className(BODY_OUTPUT_TEXT)); int postComponentsSize = postComponents.size(); List<Post> posts = new ArrayList<Post>(); for (int i = 0; i < postComponentsSize; i++) { Post post = new Post(); WebElement postComponent = driver.findElements(className(BODY_OUTPUT_TEXT)).get(i); String body = postComponent.findElement(xpath("p")).getText(); String post_subject = postComponent.findElement(xpath(POST_SUBJECT_OUTPUT_TEXT)).getText() .split(POST_SUBJECT_TEXT)[1]; String createDateStr = postComponent.findElement(xpath(CREATE_DATE_OUTPUT_TEXT)).getText() .split(CREATE_DATE_TEXT)[1]; Date createDate = null;// w w w . ja va 2s . c o m try { createDate = dateFormat.parse(createDateStr); } catch (ParseException e) { e.printStackTrace(); } Message message = new Message(); message.setSubject(post_subject); message.setText(body); post.setMessage(message); post.setCreateDate(createDate); WebElement topicEl = driver.findElement(TOPIC_TEMPLATE_LINK.getValue()); Topic topic = new Topic(topicEl.getText()); post.setTopic(topic); WebElement forumEl = driver.findElement(FORUM_TEMPLATE_LINK.getValue()); topic.setForum(new Forum(forumEl.getText())); post.setAttachments(getAttachmentsOfCurrentPost(driver, post)); addParents(driver, post); Poster poster = new Poster(); postComponent = driver.findElements(className(BODY_OUTPUT_TEXT)).get(i); poster.setUserId(postComponent.findElement(xpath(USER_LINK)).getText()); post.setPoster(poster); posts.add(post); } return posts; }
From source file:org.vige.rubia.selenium.forum.action.VerifyPost.java
License:Apache License
public static Post getLastPostOfCurrentForum(WebDriver driver, Topic topic) { WebElement postComponent = driver.findElements(className(PROFILE_LINK)).get(0) .findElement(xpath("../tr/td/a[contains(text(),'" + topic.getSubject() + "')]")) .findElement(xpath("../a")); postComponent.click();//from w w w .j av a 2s . c o m List<Post> posts = getPostsOfCurrentTopic(driver); return posts.get(posts.size() - 1); }
From source file:org.vige.rubia.selenium.forum.action.VerifyPost.java
License:Apache License
public static Poster getPosterFromLink(WebDriver driver, Post post) { WebElement profileLink = driver.findElements(className(FORUM_TABLE)).get(1) .findElement(xpath("tbody/tr/td/p[contains(text(),'" + post.getMessage().getText() + "')]")) .findElement(xpath("../../../tr/td/a")); String userId = profileLink.getText(); profileLink.click();//from w w w. ja v a 2 s .c o m Poster poster = verifyProfile(driver, userId); return poster; }