Example usage for org.openqa.selenium WebDriver findElements

List of usage examples for org.openqa.selenium WebDriver findElements

Introduction

In this page you can find the example usage for org.openqa.selenium WebDriver findElements.

Prototype

@Override
List<WebElement> findElements(By by);

Source Link

Document

Find all elements within the current page using the given mechanism.

Usage

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;
}