package br.com.dextra.dextranet.web.conteudo.post;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import br.com.dextra.dextranet.PaginaBase;
public class PaginaPost extends PaginaBase {
private String idPost;
public PaginaPost(WebDriver driver) {
super(driver);
}
public PaginaPost redigeConteudoDoPost(String titulo, String conteudo) {
this.redigeTextoInput(titulo, "form_input_title");
this.redigeCKEditor(conteudo, "form_input_content");
return this;
}
public void submetePost() {
this.click("button#form_post_submit");
this.waitingForLoading();
}
public void criarNovoPost(String titulo, String conteudo) {
this.redigeConteudoDoPost(titulo, conteudo);
this.submetePost();
}
public void excluiPost() {
this.click("button#btn-excluirpost_" + idPost);
this.waitingForLoading();
}
public Boolean existePostPor(String titulo, String conteudo) {
String seletorPostsEncontrados = "div#content_left_stretch ul#relacao_dos_posts.list_stories li";
waitForElement(seletorPostsEncontrados);
List<WebElement> htmlPostsEncontrados = encontraPosts();
if (driver.findElements(By.cssSelector(seletorPostsEncontrados)).size() < 1) {
return false;
}
for (WebElement htmlPost : htmlPostsEncontrados) {
WebElement htmlTitulo = htmlPost.findElement(By.cssSelector("a.list_stories_headline h2.titulo"));
if (StringUtils.isNotEmpty(htmlTitulo.getText()) && htmlTitulo.getText().equals(titulo)) {
String seletorLinkPost = "a.list_stories_headline";
clickWithJQuery(seletorLinkPost);
WebElement htmlConteudoPost = getConteudoPost(htmlPost);
if(htmlConteudoPost.getText().equals(conteudo)) {
idPost = getIdPost(htmlPost);
return true;
}
}
}
return false;
}
private void clickWithJQuery(String seletorLink) {
JavascriptExecutor jse = (JavascriptExecutor) driver;
jse.executeScript("jQuery('"+ seletorLink +"').click();");
}
private WebElement getConteudoPost(WebElement htmlPost) {
String conteudoDoComentarioCSSSelector = "div.story-content div.list_stories_contents div.idClassPost";
WebElement htmlConteudoPost = htmlPost.findElement(By.cssSelector(conteudoDoComentarioCSSSelector));
return htmlConteudoPost;
}
private List<WebElement> encontraPosts() {
List<WebElement> htmlPostsEncontrados = driver.findElements(By.cssSelector("div#content_left_stretch ul#relacao_dos_posts.list_stories"));
if (htmlPostsEncontrados != null) {
return htmlPostsEncontrados;
}
return new ArrayList<WebElement>();
}
private String getIdPost(WebElement htmlPost) {
WebElement htmlLi = htmlPost.findElement(By.cssSelector("li"));
return htmlLi.getAttribute("id");
}
public String getIdPost() {
return idPost;
}
public void setIdPost(String idPost) {
this.idPost = idPost;
}
// public void waitForElement(String cssSelector) {
// int MAX_WAIT = 200;
// int TIME_WAIT = 3;
// driver.manage().timeouts().pageLoadTimeout(TIME_WAIT, TimeUnit.MILLISECONDS);
//
// int attempts = 1;
//
// while (attempts < MAX_WAIT) {
// try {
// if (this.driver.findElement(By.cssSelector(cssSelector)).isDisplayed()) {
// break;
// }
// } catch (NoSuchElementException nsee) {
// }
// attempts++;
//
// driver.manage().timeouts().pageLoadTimeout(TIME_WAIT, TimeUnit.MILLISECONDS);
// }
//
// if (attempts >= MAX_WAIT) {
// throw new TimedOutException(cssSelector + " element did not find.");
// }
// }
}