Skip to content

Commit ee81572

Browse files
committed
add searching test and implement functions for search test
1 parent 42b036c commit ee81572

File tree

9 files changed

+115
-10
lines changed

9 files changed

+115
-10
lines changed

pom.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<modelVersion>4.0.0</modelVersion>
44

55
<groupId>qa.example.java</groupId>
6-
<artifactId>bbc-tests</artifactId>
6+
<artifactId>test-automation-java</artifactId>
77
<version>1.0-SNAPSHOT</version>
88
<build>
99
<plugins>
@@ -20,7 +20,7 @@
2020
</build>
2121
<packaging>jar</packaging>
2222

23-
<name>bbc-tests</name>
23+
<name>test-automation-tests</name>
2424
<url>http://maven.apache.org</url>
2525

2626
<properties>

regressions_testng.xml

+4-3
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
</groups>
1414

1515
<classes>
16-
<!--<class name="tests.BookingFlowTests"/>-->
16+
<class name="tests.HomePageTests" />
1717
</classes>
1818
</test>
1919

@@ -26,7 +26,7 @@
2626
</groups>
2727

2828
<classes>
29-
<!-- <class name="tests.BookingFlowTests" /> -->
29+
<!--<class name="tests.HomePageTests" />-->
3030
</classes>
3131
</test>
3232

@@ -39,7 +39,7 @@
3939
</groups>
4040

4141
<classes>
42-
<!-- <class name="tests.BookingFlowTests" /> -->
42+
<!--<class name="tests.HomePageTests" />-->
4343
</classes>
4444
</test> <!-- Test -->
4545

@@ -64,6 +64,7 @@
6464
</groups>
6565

6666
<classes>
67+
<!--<class name="tests.HomePageTests" />-->
6768
</classes>
6869
</test>
6970

src/main/java/helper/Browser.java

+2-5
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import org.openqa.selenium.firefox.FirefoxProfile;
88
import org.openqa.selenium.remote.DesiredCapabilities;
99
import org.openqa.selenium.remote.RemoteWebDriver;
10-
import org.testng.Reporter;
1110
import pages.HomePage;
1211

1312
import java.net.MalformedURLException;
@@ -20,16 +19,15 @@
2019
public class Browser {
2120

2221

23-
public Browser(String browserName, String port, String baseUrl) {
24-
Reporter.log("Create new instance of the browser", true);
22+
public Browser(String browserName, String baseUrl) {
2523
setBrowser(browserName);
2624
setBaseUrl(baseUrl);
2725
Initialise(getBrowser());
2826
}
2927

3028
private void Initialise(String browser) {
3129
capabilities = new DesiredCapabilities();
32-
seleniumFolderPath = System.getProperty("user.home") + "/Documents/services/selenium3/";
30+
seleniumFolderPath = System.getProperty("user.home") + "/Documents/umservices/selenium3/";
3331

3432
switch (browser) {
3533
case "Chrome":
@@ -77,7 +75,6 @@ private void Initialise(String browser) {
7775
}
7876

7977
try {
80-
Reporter.log("Create new instance of remote web driver", true);
8178
_driver = new RemoteWebDriver(new URL("http://0.0.0.0:4444/wd/hub"), capabilities);
8279
} catch (MalformedURLException e) {
8380
e.printStackTrace();

src/main/java/pages/HomePage.java

+1
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,5 @@ public class HomePage extends Page {
1111
public HomePage(Browser browser) {
1212
super(browser);
1313
}
14+
1415
}
+22
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,34 @@
11
package pages.shared;
22

33
import helper.Browser;
4+
import org.openqa.selenium.JavascriptExecutor;
5+
import org.openqa.selenium.WebDriver;
6+
import org.openqa.selenium.WebElement;
7+
import org.openqa.selenium.support.PageFactory;
8+
import org.openqa.selenium.support.ui.WebDriverWait;
49

510
/**
611
* Created by opantsjoha on 02/07/2017.
712
*/
813
public class Element {
14+
915
public Element(Browser browser) {
16+
this.browser = browser;
17+
driver = browser._driver;
18+
PageFactory.initElements(driver, this);
19+
}
1020

21+
// Draws a red border around the found element. Does not set it back anyhow.
22+
public WebElement highlightElement(WebElement elem) {
23+
// draw a border around the found element
24+
if (driver instanceof JavascriptExecutor) {
25+
((JavascriptExecutor) driver).executeScript("arguments[0].style.border='3px solid red'", elem);
26+
}
27+
return elem;
1128
}
29+
30+
protected WebDriver driver;
31+
protected WebDriverWait wait;
32+
protected Browser browser;
33+
protected static int DURATION = 5000;
1234
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package pages.shared;
2+
3+
import helper.Browser;
4+
import org.openqa.selenium.WebElement;
5+
import org.openqa.selenium.support.FindBy;
6+
7+
/**
8+
* Created by opantsjoha on 02/07/2017.
9+
*/
10+
public class HeaderSection extends Element {
11+
12+
public HeaderSection(Browser browser) {
13+
super(browser);
14+
}
15+
16+
@FindBy(id = "orb-search-q")
17+
private WebElement searchField;
18+
19+
// This search button is actually useless - as it just opens another search box
20+
@FindBy(id = "orb-search-button")
21+
private WebElement searchButton;
22+
23+
@FindBy(className = "se-searchbox__submit")
24+
private WebElement searchSubmitButton;
25+
26+
public void setSearchField(String value) {
27+
searchField.sendKeys(value);
28+
}
29+
30+
public void clickOnSearchButton() {
31+
// this element only appears when something is input into search field.
32+
searchSubmitButton.click();
33+
}
34+
35+
}

src/main/java/pages/shared/Page.java

+10
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,14 @@ public class Page extends Element {
99
public Page(Browser browser) {
1010
super(browser);
1111
}
12+
13+
// Create HeaderSection object when called.
14+
public HeaderSection HeaderSection(){
15+
if(headerSection == null){
16+
headerSection = new HeaderSection(browser);
17+
}
18+
return headerSection;
19+
}
20+
21+
private HeaderSection headerSection;
1222
}

src/test/java/helper/TestHelper.java

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package helper;
2+
3+
/**
4+
* Created by opantsjoha on 02/07/2017.
5+
*/
6+
public class TestHelper {
7+
}
+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package tests;
2+
3+
import helper.Browser;
4+
import helper.TestHelper;
5+
import org.testng.annotations.*;
6+
7+
/**
8+
* Created by opantsjoha on 02/07/2017.
9+
*/
10+
public class HomePageTests extends TestHelper {
11+
12+
Browser browser;
13+
14+
@Parameters({"browserName", "baseUrl"})
15+
@BeforeClass(groups = {"web"})
16+
public void setUp(String browserName, String baseUrl) {
17+
browser = new Browser(browserName, baseUrl);
18+
browser.navigateToBaseUrl();
19+
}
20+
21+
@Test(groups = {"web"})
22+
public void searchTest() throws InterruptedException {
23+
browser.HomePage().HeaderSection().setSearchField("Cooking");
24+
browser.HomePage().HeaderSection().clickOnSearchButton();
25+
}
26+
27+
@AfterClass(groups = {"web"})
28+
public void tearDown() {
29+
browser._driver.quit();
30+
}
31+
32+
}

0 commit comments

Comments
 (0)