Skip to content

Commit 4471acf

Browse files
committed
first commit
1 parent c76b5a6 commit 4471acf

File tree

7 files changed

+331
-0
lines changed

7 files changed

+331
-0
lines changed

.gitignore

+4
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,7 @@
2020

2121
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
2222
hs_err_pid*
23+
24+
.idea/
25+
target/
26+
bbc-tests.iml

pom.xml

+88
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
5+
<groupId>qa.example.java</groupId>
6+
<artifactId>bbc-tests</artifactId>
7+
<version>1.0-SNAPSHOT</version>
8+
<build>
9+
<plugins>
10+
<plugin>
11+
<groupId>org.apache.maven.plugins</groupId>
12+
<artifactId>maven-compiler-plugin</artifactId>
13+
<version>3.6.1</version>
14+
<configuration>
15+
<source>1.8</source>
16+
<target>1.8</target>
17+
</configuration>
18+
</plugin>
19+
</plugins>
20+
</build>
21+
<packaging>jar</packaging>
22+
23+
<name>bbc-tests</name>
24+
<url>http://maven.apache.org</url>
25+
26+
<properties>
27+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
28+
</properties>
29+
30+
<profiles>
31+
<profile>
32+
<id>Regression</id>
33+
<build>
34+
<plugins>
35+
<plugin>
36+
<groupId>org.apache.maven.plugins</groupId>
37+
<artifactId>maven-surefire-plugin</artifactId>
38+
<version>2.20</version>
39+
<configuration>
40+
<suiteXmlFiles>
41+
<suiteXmlFile>regressions_testng.xml</suiteXmlFile>
42+
</suiteXmlFiles>
43+
</configuration>
44+
</plugin>
45+
</plugins>
46+
</build>
47+
</profile>
48+
</profiles>
49+
50+
<dependencies>
51+
<dependency>
52+
<groupId>org.seleniumhq.selenium</groupId>
53+
<artifactId>selenium-support</artifactId>
54+
<version>3.4.0</version>
55+
</dependency>
56+
<dependency>
57+
<groupId>net.sourceforge.htmlcleaner</groupId>
58+
<artifactId>htmlcleaner</artifactId>
59+
<version>2.21</version>
60+
</dependency>
61+
<dependency>
62+
<groupId>net.sourceforge.jexcelapi</groupId>
63+
<artifactId>jxl</artifactId>
64+
<version>2.6.12</version>
65+
</dependency>
66+
<dependency>
67+
<groupId>org.apache.logging.log4j</groupId>
68+
<artifactId>log4j-core</artifactId>
69+
<version>2.8.2</version>
70+
</dependency>
71+
<dependency>
72+
<groupId>io.appium</groupId>
73+
<artifactId>java-client</artifactId>
74+
<version>4.1.2</version>
75+
</dependency>
76+
<dependency>
77+
<groupId>org.seleniumhq.selenium</groupId>
78+
<artifactId>selenium-java</artifactId>
79+
<version>3.4.0</version>
80+
</dependency>
81+
<dependency>
82+
<groupId>org.testng</groupId>
83+
<artifactId>testng</artifactId>
84+
<version>6.11</version>
85+
<scope>test</scope>
86+
</dependency>
87+
</dependencies>
88+
</project>

regressions_testng.xml

+71
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
3+
<suite name="Suite" parallel="none">
4+
5+
<parameter name="baseUrl" value="http://www.bbc.co.uk/"/>
6+
7+
<test name="Chrome Tests">
8+
<parameter name="browserName" value="Chrome"/>
9+
<groups>
10+
<run>
11+
<include name="web"/>
12+
</run>
13+
</groups>
14+
15+
<classes>
16+
<!--<class name="tests.BookingFlowTests"/>-->
17+
</classes>
18+
</test>
19+
20+
<test name="Safari Tests">
21+
<parameter name="browserName" value="Safari"/>
22+
<groups>
23+
<run>
24+
<include name="web"/>
25+
</run>
26+
</groups>
27+
28+
<classes>
29+
<!-- <class name="tests.BookingFlowTests" /> -->
30+
</classes>
31+
</test>
32+
33+
<test name="Firefox Tests">
34+
<parameter name="browserName" value="Firefox"/>
35+
<groups>
36+
<run>
37+
<include name="web"/>
38+
</run>
39+
</groups>
40+
41+
<classes>
42+
<!-- <class name="tests.BookingFlowTests" /> -->
43+
</classes>
44+
</test> <!-- Test -->
45+
46+
<test name="IE Tests">
47+
<parameter name="browserName" value="InternetExplorer"/>
48+
<groups>
49+
<run>
50+
<include name="web"/>
51+
</run>
52+
</groups>
53+
54+
<classes>
55+
</classes>
56+
</test>
57+
58+
<test name="Edge Tests">
59+
<parameter name="browserName" value="Edge"/>
60+
<groups>
61+
<run>
62+
<include name="web"/>
63+
</run>
64+
</groups>
65+
66+
<classes>
67+
</classes>
68+
</test>
69+
70+
71+
</suite> <!-- Suite -->

src/main/java/helper/Browser.java

+130
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
package helper;
2+
3+
import io.appium.java_client.remote.MobileCapabilityType;
4+
import org.openqa.selenium.WebDriver;
5+
import org.openqa.selenium.chrome.ChromeOptions;
6+
import org.openqa.selenium.firefox.FirefoxDriver;
7+
import org.openqa.selenium.firefox.FirefoxProfile;
8+
import org.openqa.selenium.remote.DesiredCapabilities;
9+
import org.openqa.selenium.remote.RemoteWebDriver;
10+
import org.testng.Reporter;
11+
import pages.HomePage;
12+
13+
import java.net.MalformedURLException;
14+
import java.net.URL;
15+
import java.util.concurrent.TimeUnit;
16+
17+
/**
18+
* Created by opantsjoha on 02/07/2017.
19+
*/
20+
public class Browser {
21+
22+
23+
public Browser(String browserName, String port, String baseUrl) {
24+
Reporter.log("Create new instance of the browser", true);
25+
setBrowser(browserName);
26+
setBaseUrl(baseUrl);
27+
Initialise(getBrowser());
28+
}
29+
30+
private void Initialise(String browser) {
31+
capabilities = new DesiredCapabilities();
32+
seleniumFolderPath = System.getProperty("user.home") + "/Documents/services/selenium3/";
33+
34+
switch (browser) {
35+
case "Chrome":
36+
ChromeOptions chrome_options = new ChromeOptions();
37+
chrome_options.addArguments("--disable-geolocation");
38+
chrome_options.addArguments("--incognito");
39+
System.setProperty("webdriver.chrome.driver", seleniumFolderPath + "chromedriver");
40+
capabilities.setBrowserName("chrome");
41+
capabilities.setCapability(ChromeOptions.CAPABILITY, chrome_options);
42+
// _driver = new ChromeDriver(capabilities);
43+
break;
44+
case "Safari":
45+
capabilities.setBrowserName("safari");
46+
47+
// _driver = new SafariDriver();
48+
break;
49+
case "Firefox":
50+
FirefoxProfile ff_profile = new FirefoxProfile();
51+
ff_profile.setPreference("geo.prompt.testing", true);
52+
ff_profile.setPreference("geo.prompt.testing.allow", true);
53+
System.setProperty("webdriver.gecko.driver", seleniumFolderPath + "geckodriver");
54+
capabilities.setBrowserName("firefox");
55+
capabilities.setCapability(FirefoxDriver.PROFILE, ff_profile);
56+
57+
// _driver = new FirefoxDriver(capabilities);
58+
break;
59+
case "InternetExplorer":
60+
System.setProperty("webdriver.ie.driver", seleniumFolderPath + "IEDriverServer.exe");
61+
capabilities.setBrowserName("internet explorer");
62+
break;
63+
case "Edge":
64+
System.setProperty("webdriver.edge.driver", seleniumFolderPath + "MicrosoftWebDriver.exe");
65+
capabilities.setBrowserName("edge");
66+
break;
67+
case "Safari_iOS":
68+
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone 5");
69+
capabilities.setCapability(MobileCapabilityType.APPIUM_VERSION, "1.6.5");
70+
capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "iOS");
71+
capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "XCUITest");
72+
capabilities.setCapability(MobileCapabilityType.BROWSER_NAME, "Safari");
73+
break;
74+
default:
75+
System.out.println("Invalid browser passed in: " + browser);
76+
break;
77+
}
78+
79+
try {
80+
Reporter.log("Create new instance of remote web driver", true);
81+
_driver = new RemoteWebDriver(new URL("http://0.0.0.0:4444/wd/hub"), capabilities);
82+
} catch (MalformedURLException e) {
83+
e.printStackTrace();
84+
}
85+
_driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
86+
}
87+
88+
public void navigateTo(String url) {
89+
_driver.get(url);
90+
}
91+
92+
public void navigateToBaseUrl() {
93+
_driver.get(getBaseUrl());
94+
}
95+
96+
public String getBrowser() {
97+
return this.browserName;
98+
}
99+
100+
private void setBrowser(String browserName) {
101+
this.browserName = browserName;
102+
}
103+
104+
private void setBaseUrl(String baseUrl) {
105+
this.baseUrl = baseUrl;
106+
}
107+
108+
public String getBaseUrl() {
109+
return this.baseUrl;
110+
}
111+
112+
113+
// All Page Objects are created here...
114+
public HomePage HomePage() {
115+
if (homePage == null) {
116+
homePage = new HomePage(this);
117+
}
118+
return homePage;
119+
}
120+
121+
// Public properties
122+
public WebDriver _driver;
123+
124+
// Private properties
125+
private DesiredCapabilities capabilities;
126+
private String browserName;
127+
private String baseUrl;
128+
private String seleniumFolderPath;
129+
private HomePage homePage;
130+
}

src/main/java/pages/HomePage.java

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package pages;
2+
3+
import helper.Browser;
4+
import pages.shared.Page;
5+
6+
/**
7+
* Created by opantsjoha on 02/07/2017.
8+
*/
9+
public class HomePage extends Page {
10+
11+
public HomePage(Browser browser) {
12+
super(browser);
13+
}
14+
}
+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package pages.shared;
2+
3+
import helper.Browser;
4+
5+
/**
6+
* Created by opantsjoha on 02/07/2017.
7+
*/
8+
public class Element {
9+
public Element(Browser browser) {
10+
11+
}
12+
}

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

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package pages.shared;
2+
3+
import helper.Browser;
4+
5+
/**
6+
* Created by opantsjoha on 02/07/2017.
7+
*/
8+
public class Page extends Element {
9+
public Page(Browser browser) {
10+
super(browser);
11+
}
12+
}

0 commit comments

Comments
 (0)