Skip to content

Commit 795f1cb

Browse files
committed
adding first test
1 parent f1d9fdb commit 795f1cb

File tree

3 files changed

+120
-0
lines changed

3 files changed

+120
-0
lines changed

src/main/java/pages/SearchPage.java

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package pages;
2+
3+
import java.util.List;
4+
5+
import org.openqa.selenium.By;
6+
import org.openqa.selenium.WebDriver;
7+
import org.openqa.selenium.WebElement;
8+
import org.openqa.selenium.support.ui.WebDriverWait;
9+
10+
import static org.openqa.selenium.support.ui.ExpectedConditions.*;
11+
12+
public class SearchPage {
13+
private WebDriver driver;
14+
private By searchBar = By.id("searchBar");
15+
private By visibleBooks =
16+
By.xpath("//li[not(contains(@class, 'ui-screen-hidden'))]");
17+
private By hiddenBooks =
18+
By.xpath("//li[contains(@class, 'ui-screen-hidden')]");
19+
20+
public SearchPage(WebDriver driver){
21+
this.driver = driver;
22+
}
23+
24+
public void search(String text) {
25+
search(text, true);
26+
}
27+
28+
public void search(String text, boolean waitForHidden) {
29+
clearSearch();
30+
driver.findElement(searchBar).sendKeys(text);
31+
32+
if(waitForHidden) {
33+
WebDriverWait wait = new WebDriverWait(driver, 5);
34+
wait.until(presenceOfElementLocated(hiddenBooks));
35+
}
36+
}
37+
38+
public void clearSearch() {
39+
driver.findElement(searchBar).clear();
40+
WebDriverWait wait = new WebDriverWait(driver, 5);
41+
wait.until(numberOfElementsToBe(hiddenBooks, 0));
42+
}
43+
44+
public int getNumberOfVisibleBooks() {
45+
return findVisibleBooks().size();
46+
}
47+
48+
private List<WebElement> findVisibleBooks(){
49+
return driver.findElements(visibleBooks);
50+
}
51+
}

src/test/java/SearchTests.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import base.BaseTests;
2+
import org.junit.Test;
3+
4+
public class SearchTests extends BaseTests {
5+
6+
@Test
7+
public void testSearchByFullTitle(){
8+
String title = "Agile Testing";
9+
page.search(title);
10+
validateWindow();
11+
}
12+
}

src/test/java/base/BaseTests.java

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package base;
2+
3+
import com.applitools.eyes.selenium.Eyes;
4+
import org.junit.AfterClass;
5+
import org.junit.BeforeClass;
6+
import org.openqa.selenium.WebDriver;
7+
import org.openqa.selenium.chrome.ChromeDriver;
8+
9+
10+
import java.io.File;
11+
import java.io.FileInputStream;
12+
import java.util.Properties;
13+
14+
import pages.SearchPage;
15+
import pages.SortableDataTablesPage;
16+
17+
public class BaseTests {
18+
19+
protected static WebDriver driver;
20+
protected static SearchPage page;
21+
protected static Eyes eyes;
22+
23+
@BeforeClass
24+
public static void setUp() {
25+
Properties props = System.getProperties();
26+
try {
27+
props.load(new FileInputStream(new File("resources/test.properties")));
28+
} catch(Exception e) {
29+
e.printStackTrace();
30+
System.exit(-1);
31+
}
32+
33+
driver = new ChromeDriver();
34+
initiateEyes();
35+
36+
driver.get(System.getProperty("site.url"));
37+
page = new SearchPage(driver);
38+
}
39+
40+
@AfterClass
41+
public static void tearDown() {
42+
driver.quit();
43+
eyes.abortIfNotClosed();
44+
}
45+
46+
private static void initiateEyes(){
47+
eyes = new Eyes();
48+
eyes.setApiKey(System.getProperty("applitools.api.key"));
49+
}
50+
51+
public void validateWindow(){
52+
eyes.open(driver, "Automation Bookstore",
53+
Thread.currentThread().getStackTrace()[2].getMethodName());
54+
eyes.checkWindow();
55+
eyes.close();
56+
}
57+
}

0 commit comments

Comments
 (0)