150 lines
5.3 KiB
Java
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();
|
|
}
|
|
}
|