ng-tracker/src/test/java/grant/GrantPage.java
2019-06-05 23:14:52 +04:00

150 lines
5.3 KiB
Java

package grant;
import core.PageObject;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.Select;
import java.util.List;
public class GrantPage extends PageObject {
@Override
public String getSubTitle() {
return driver.findElement(By.tagName("h2")).getText();
}
public String getId() {
return driver.findElement(By.id("id")).getAttribute("value");
}
public void setTitle(String name) {
driver.findElement(By.id("title")).clear();
driver.findElement(By.id("title")).sendKeys(name);
}
public String getTitle() {
return driver.findElement(By.id("title")).getAttribute("value");
}
public void setDeadline(String date, Integer i, String description) {
driver.findElement(By.id(String.format("deadlines%d.date", i))).sendKeys(date);
driver.findElement(By.id(String.format("deadlines%d.description", i))).sendKeys(description);
}
public void setLeader() {
WebElement webElement = driver.findElement(By.id("leaderId"));
Select selectLeader = new Select(webElement);
selectLeader.selectByVisibleText("Романов");
}
public void saveGrant() {
driver.findElement(By.id("sendMessageButton")).click();
}
public boolean checkBlankFields() {
return driver.findElements(By.className("alert-danger")).size() > 0;
}
public List<WebElement> getAttachedPapers() {
try {
return driver.findElement(By.className("div-selected-papers")).findElements(By.tagName("div"));
} catch (Exception ex) {
return null;
}
}
public List<WebElement> attachPaper() {
WebElement selectPapers = driver.findElement(By.id("allPapers"));
Select select = new Select(selectPapers);
List<WebElement> selectedOptions = select.getAllSelectedOptions();
List<WebElement> allOptions = select.getOptions();
if (selectedOptions.size() >= allOptions.size()) {
for (int i = 0; i < allOptions.size(); i++) {
if (!allOptions.get(i).equals(selectedOptions.get(i))) {
select.selectByVisibleText(allOptions.get(i).getText());
selectedOptions.add(allOptions.get(i));
return selectedOptions;
}
}
} else {
select.selectByVisibleText(allOptions.get(0).getText());
selectedOptions.add(allOptions.get(0));
return selectedOptions;
}
return null;
}
public List<WebElement> deletePaper() {
WebElement selectPapers = driver.findElement(By.id("allPapers"));
Select select = new Select(selectPapers);
select.deselectByVisibleText(select.getFirstSelectedOption().getText());
return select.getAllSelectedOptions();
}
public List<WebElement> getDeadlineList() {
return driver.findElements(By.id("deadlines"));
}
public Integer getDeadlineCount() {
return getDeadlineList().size();
}
public void addDeadline() {
driver.findElement(By.id("addDeadline")).click();
}
public boolean checkDeadline(String description, String dateValue) {
return getDeadlineList()
.stream()
.anyMatch(webElement -> {
return webElement.findElement(By.className("div-deadline-description")).findElement(
By.tagName("input")).getAttribute("value").equals(description)
&& webElement.findElement(By.className("form-deadline-date")).getAttribute("value").equals(dateValue);
});
}
public void deleteDeadline() {
driver.findElements(By.className("btn-delete-deadline")).get(0).click();
}
public List<WebElement> addAuthor() {
WebElement selectAuthors = driver.findElement(By.id("authors"));
Select select = new Select(selectAuthors);
List<WebElement> selectedOptions = select.getAllSelectedOptions();
List<WebElement> allOptions = select.getOptions();
int i = 0;
while (i < selectedOptions.size()) {
if (!allOptions.get(i).equals(selectedOptions.get(i))) {
select.selectByVisibleText(allOptions.get(i).getText());
selectedOptions.add(allOptions.get(i));
return selectedOptions;
} else {
i++;
}
}
if (selectedOptions.size() != allOptions.size()) {
select.selectByVisibleText(allOptions.get(i).getText());
selectedOptions.add(allOptions.get(i));
}
return selectedOptions;
}
public void deleteAuthor() {
WebElement selectAuthors = driver.findElement(By.id("authors"));
Select select = new Select(selectAuthors);
List<WebElement> selectedOptions = select.getAllSelectedOptions();
if (selectedOptions.size() != 0) {
select.deselectByVisibleText(selectedOptions.get(0).getText());
}
}
public void setDescription(String description) {
driver.findElement(By.id("comment")).clear();
driver.findElement(By.id("comment")).sendKeys(description);
}
public String getDescription() {
return driver.findElement(By.id("comment")).getText();
}
}