Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
2236065
Iframes tests.
iamalittletester Feb 3, 2019
6c352e1
getAttribute()
iamalittletester Feb 13, 2019
b29210e
Dropdown/select tests.
iamalittletester Feb 26, 2019
28efedf
Click tests.
iamalittletester Feb 27, 2019
4613b46
SendKeys tests.
iamalittletester Feb 28, 2019
8367061
Clear tests.
iamalittletester Feb 28, 2019
b656162
getText() tests.
iamalittletester Mar 2, 2019
71ba5af
getCssValue() tests.
iamalittletester Mar 3, 2019
481f912
Working with cookies tests.
iamalittletester Mar 6, 2019
d5d87d7
Navigation tests.
iamalittletester Mar 7, 2019
54b6a0b
Working with window/tabs tests.
iamalittletester Mar 17, 2019
7bd638e
Open page tests.
iamalittletester Mar 21, 2019
5236021
Open page tests.
iamalittletester Mar 21, 2019
17964ef
Package name refactoring.
iamalittletester Mar 23, 2019
f0368ff
User prompts tests. Enable Firefox.
iamalittletester Mar 23, 2019
0050224
Get browser method.
iamalittletester Apr 1, 2019
d8c9f73
Get browser with custome sizes method.
iamalittletester Apr 2, 2019
284319d
Add Waiter class.
iamalittletester May 4, 2019
5fd0d1f
Target version update.
iamalittletester May 4, 2019
732fa86
WebDriverWait examples.
iamalittletester May 11, 2019
44cf19e
NTD examples.
iamalittletester May 29, 2019
9d3f9d8
GotoAms demo code + small updates.
iamalittletester Jun 19, 2019
98722d3
TAU course code.
iamalittletester Dec 5, 2019
e40a71a
Update to Selenium 4 RC 3.
iamalittletester Oct 13, 2021
f839e68
Merge remote-tracking branch 'origin/master'
iamalittletester Oct 13, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

49 changes: 4 additions & 45 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,67 +12,26 @@

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>

<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.3.2</version>
<version>5.4.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.10.0</version>
<version>4.0.0-rc-3</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.6</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
</dependencies>

<build>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.0.0</version>
</plugin>
<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20.1</version>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
62 changes: 61 additions & 1 deletion src/main/java/browser/BrowserGetter.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package browser;

import org.openqa.selenium.Dimension;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

import static java.lang.System.setProperty;
import static org.apache.commons.lang3.SystemUtils.*;
Expand All @@ -12,9 +14,15 @@ public class BrowserGetter {
* if it is not one of the predefined ones, just throw exception
* only create a webDriver instance for a known operating system
*/
public WebDriver getChromeDriver() {

public WebDriver getWinChromeDriver() {
setProperty("webdriver.chrome.driver", "src/test/resources/browserBinaries/chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
return driver;
}

public WebDriver getChromeDriver() {
if (!IS_OS_WINDOWS && !IS_OS_LINUX && !IS_OS_MAC) {
throw new RuntimeException("Could not initialize browser due to unknown operating system!");
}
Expand All @@ -32,4 +40,56 @@ public WebDriver getChromeDriver() {
driver.manage().window().maximize();
return driver;
}

public WebDriver getFirefoxDriver() {
if (!IS_OS_WINDOWS && !IS_OS_LINUX && !IS_OS_MAC) {
throw new RuntimeException("Could not initialize browser due to unknown operating system!");
}
if (IS_OS_WINDOWS) {
setProperty("webdriver.gecko.driver", "src/test/resources/browserBinaries/geckodriver.exe");
}
if (IS_OS_LINUX) {
setProperty("webdriver.gecko.driver", "src/test/resources/browserBinaries/geckodriver");
}
if (IS_OS_MAC) {
setProperty("webdriver.gecko.driver", "src/test/resources/browserBinaries/geckodriverMac");
}

WebDriver driver = new FirefoxDriver();
driver.manage().window().maximize();
return driver;
}

public WebDriver getDriver() {
switch (System.getProperty("browser").toLowerCase()) {
case "chrome" :
System.out.println("Chrome was chosen!");
return getChromeDriver();
case "firefox" :
System.out.println("Firefox was chosen!");
return getFirefoxDriver();
default:
throw new RuntimeException("Unsupported browser! Will not start any browser!");
}
}

public WebDriver getChromeDriverCustomSize(int width, int height) {
if (!IS_OS_WINDOWS && !IS_OS_LINUX && !IS_OS_MAC) {
throw new RuntimeException("Could not initialize browser due to unknown operating system!");
}
if (IS_OS_WINDOWS) {
setProperty("webdriver.chrome.driver", "src/test/resources/browserBinaries/chromedriver.exe");
}
if (IS_OS_LINUX) {
setProperty("webdriver.chrome.driver", "src/test/resources/browserBinaries/chromedriver");
}
if (IS_OS_MAC) {
setProperty("webdriver.chrome.driver", "src/test/resources/browserBinaries/chromedriverMac");
}

WebDriver driver = new ChromeDriver();
driver.manage().window().setSize(new Dimension(width, height));
return driver;
}

}
48 changes: 48 additions & 0 deletions src/main/java/objects/Article.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package objects;

import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;

import java.util.Objects;

public class Article {
private Image img;
private String tag;
private Link link;

public Article(Image img, String tag, Link link) {
this.img = img;
this.tag = tag;
this.link = link;
}

public Article(WebElement element) {
this.img = new Image(element.findElement(By.cssSelector("img")));
this.tag = element.findElement(By.cssSelector("span")).getText();
this.link = new Link(element.findElement(By.cssSelector("a")));
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Article article = (Article) o;
return Objects.equals(img, article.img) &&
Objects.equals(tag, article.tag) &&
Objects.equals(link, article.link);
}

@Override
public int hashCode() {
return Objects.hash(img, tag, link);
}

@Override
public String toString() {
return "Article{" +
"img=" + img +
", tag='" + tag + '\'' +
", link=" + link +
'}';
}
}
47 changes: 47 additions & 0 deletions src/main/java/objects/Image.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package objects;

import org.openqa.selenium.WebElement;

import java.util.Objects;

public class Image {
private String src;
private String height;
private String width;

public Image(String src, String height, String width) {
this.src = src;
this.height = height;
this.width = width;
}

public Image(WebElement element) {
this.src = element.getAttribute("src");
this.height = element.getAttribute("height");
this.width = element.getAttribute("width");
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Image image = (Image) o;
return Objects.equals(src, image.src) &&
Objects.equals(height, image.height) &&
Objects.equals(width, image.width);
}

@Override
public int hashCode() {
return Objects.hash(src, height, width);
}

@Override
public String toString() {
return "Image{" +
"src='" + src + '\'' +
", height='" + height + '\'' +
", width='" + width + '\'' +
'}';
}
}
42 changes: 42 additions & 0 deletions src/main/java/objects/Link.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package objects;

import org.openqa.selenium.WebElement;

import java.util.Objects;

public class Link {
private String url;
private String label;

public Link(String url, String label) {
this.url = url;
this.label = label;
}

public Link(WebElement element) {
this.url = element.getAttribute("href");
this.label = element.getText();
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Link link = (Link) o;
return Objects.equals(url, link.url) &&
Objects.equals(label, link.label);
}

@Override
public int hashCode() {
return Objects.hash(url, label);
}

@Override
public String toString() {
return "Link{" +
"url='" + url + '\'' +
", label='" + label + '\'' +
'}';
}
}
30 changes: 30 additions & 0 deletions src/main/java/pages/InteractionsPage.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package pages;

import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;

import java.util.List;

public class InteractionsPage {
@FindBy(css = "[name='checkboxToClick']") public WebElement checkbox;
@FindBy(css = "#radioButtonToClick") public WebElement radioButton;
@FindBy(css = "#linkToClick") public WebElement link;

@FindBy(css = "[type='text']") public WebElement textInput;
@FindBy(css = "textarea") public WebElement textArea;
@FindBy(css = "[maxlength='100']") public WebElement predefinedTextArea;

@FindBy(css = "[src*='42514697560_1740d1993f_n.jpg']") public WebElement img;
@FindBy(css = ".w3-purple") public WebElement disabledButton;

@FindBy(css = "#getTextOuterDiv") public WebElement div;
@FindBy(css = "#getTextInnerDiv h5") public WebElement h5;

@FindBy(css = "#getCssValueDiv") public WebElement container;
@FindBy(css = "#getCssValueDiv h2") public WebElement h2;

@FindBy(css = "[name='coffee']") public WebElement coffeeSelectWebElement;
@FindBy(css = "[name='refreshment']") public WebElement refreshmentSelectWebElement;

@FindBy(css = "h1") public WebElement h1;
}
11 changes: 11 additions & 0 deletions src/main/java/pages/SeOOPage.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package pages;

import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;

import java.util.List;

public class SeOOPage {
@FindBy(css = "article") public
List<WebElement> elements;
}
10 changes: 10 additions & 0 deletions src/main/java/pages/TabsPage.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package pages;

import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;

public class TabsPage {
@FindBy(css = "[href*='secondpage']") public WebElement linkToSecondPage;
@FindBy(css = "[href*='thirdpage']") public WebElement linkToThirdPage;
@FindBy(css = "h1") public WebElement h1;
}
Loading