package students; import core.PageObject; import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.WebElement; import java.util.List; public class TaskPage extends PageObject { @Override public String getSubTitle() { return driver.findElement(By.tagName("h3")).getText(); } public void setName(String name) { driver.findElement(By.id("title")).sendKeys(name); } public void save() { driver.findElement(By.id("sendMessageButton")).click(); } public void addDeadlineDate(String deadDate, Integer deadNum) { driver.findElement(By.id(String.format("deadlines%d.date", deadNum))).sendKeys(deadDate); } public void addDeadlineDescription(String deadDescr, Integer deadNum) { driver.findElement(By.id(String.format("deadlines%d.description", deadNum))).sendKeys(deadDescr); } public void removeName() { driver.findElement(By.id("title")).clear(); } public String getId() { return driver.findElement(By.id("id")).getAttribute("value"); } public Integer getDeadNum() { return driver.findElements(By.cssSelector("#task-form .form-group:nth-of-type(5) .row")).size(); } public void clickAddDeadline() { driver.findElement(By.cssSelector("#addDeadline")).click(); } private List getDeadlines() { return driver.findElements(By.cssSelector(".form-group:nth-of-type(5) .row")); } public void deleteDeadline() { driver.findElement(By.xpath("//*[@id=\"task-form\"]/div/div[1]/div[5]/div[1]/div[3]/a")).click(); } public void clearDeadlineDate(Integer deadNum) { driver.findElement(By.id(String.format("deadlines%d.date", deadNum))).sendKeys(Keys.DELETE); } public void clearDeadlineDescription(Integer deadNum) { driver.findElement(By.id(String.format("deadlines%d.description", deadNum))).clear(); } public boolean hasDeadline(String deadDescr, String deadValue) { return getDeadlines() .stream() .anyMatch(webElement -> { return webElement.findElement(By.cssSelector("input[type=\"text\"]")).getAttribute("value").equals(deadDescr) && webElement.findElement(By.cssSelector("input[type=\"date\"]")).getAttribute("value").equals(deadValue); }); } public void setTag(String tag) { driver.findElement(By.className("input-tag-name")).sendKeys(tag); driver.findElement(By.className("input-tag-name")).sendKeys(Keys.ENTER); } }