diff --git a/selenide_series/.idea/modules.xml b/selenide_series/.idea/modules.xml
new file mode 100644
index 0000000..fefa14c
--- /dev/null
+++ b/selenide_series/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/selenide_series/readme.md b/selenide_series/readme.md
index db4d009..9203ae0 100644
--- a/selenide_series/readme.md
+++ b/selenide_series/readme.md
@@ -11,3 +11,9 @@ Maven --->
20
'''
+
+PageObjects -->
+
+vytvořit složku pages v test/Java, --> Mark Directory -->Test Sources Root (pouze zě nemám java kde vznikají package)
+
+Pak si v testu na importovat pages object např: import pages.HomePage;
\ No newline at end of file
diff --git a/selenide_series/selenide_series.iml b/selenide_series/selenide_series.iml
new file mode 100644
index 0000000..becf62c
--- /dev/null
+++ b/selenide_series/selenide_series.iml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/selenide_series/src/test/java/pages/HomePage.java b/selenide_series/src/test/java/pages/HomePage.java
new file mode 100644
index 0000000..b06b22e
--- /dev/null
+++ b/selenide_series/src/test/java/pages/HomePage.java
@@ -0,0 +1,40 @@
+package pages;
+
+import com.codeborne.selenide.ElementsCollection;
+import com.codeborne.selenide.Selenide;
+import com.codeborne.selenide.SelenideElement;
+import com.codeborne.selenide.WebDriverRunner;
+import org.openqa.selenium.By;
+
+import static com.codeborne.selenide.Selenide.*;
+import static org.testng.AssertJUnit.assertEquals;
+
+public class HomePage {
+ public HomePage open() {
+ Selenide.open("https://practice.sdetunicorns.com/");
+ return this;
+ }
+ // pomocí ALT+Enter si vytvoříme v červeném (jako importy) řádku com.codeborne.selenide.SelenideElement
+ // pak s toho vytvoříme import com.codeborne.selenide.SelenideElement;
+ //pak mužeme odmazat níže část s com.codeborne.selenide.
+ public SelenideElement getStaredBtn() {
+ return $(By.id("get-started"));
+ }
+ public SelenideElement headingTitle() {
+ return $("h1");
+ }
+ public SelenideElement logoLink() {
+ return $(By.xpath("//*[@id=\"zak-masthead\"]/div/div/div/div[1]/div/a/img"));
+ }
+ //zde vracíme kolekci elementu tak proto ElementsCollection
+ public ElementsCollection linksList() {
+ return $$("#zak-primary-menu li[id*=menu-item]");
+ }
+
+ public void assertUrl(String expectedURL) {
+ String url = WebDriverRunner.url();
+ assertEquals(url, expectedURL);
+ }
+
+}
+
diff --git a/selenide_series/src/test/java/specs/HomeTest.java b/selenide_series/src/test/java/specs/HomeTest.java
index 08d1bf0..c7647f3 100644
--- a/selenide_series/src/test/java/specs/HomeTest.java
+++ b/selenide_series/src/test/java/specs/HomeTest.java
@@ -1,11 +1,13 @@
package specs;
+
import com.codeborne.selenide.CollectionCondition;
import com.codeborne.selenide.ElementsCollection;
import com.codeborne.selenide.WebDriverRunner;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.testng.annotations.Test;
+import pages.HomePage;
// pro každou novou funkci pomocí AlT + Enter můžeme přidat hvězdičku a ušetříme řádky
import java.util.List;
@@ -15,13 +17,18 @@ import static org.testng.Assert.assertTrue;
import static org.testng.AssertJUnit.assertEquals;
public class HomeTest {
+ HomePage home = new HomePage();
@Test
public void testPageUrlAndTitle() {
- open("https://practice.sdetunicorns.com/");
+ // home page z page objects
+ home
+ .open() // můžeme i řetězit
+ .assertUrl("https://practice.sdetunicorns.com/");
+
// test očekávané url, String url do této proměné jsme vložily url
- String url = WebDriverRunner.url();
- assertEquals(url, "https://practice.sdetunicorns.com/");
+ // *page*
+ // home.assertUrl("https://practice.sdetunicorns.com/");
// test titulu stránky
String title = title();
@@ -32,8 +39,8 @@ public class HomeTest {
public void testInteractingWithElements() {
open("https://practice.sdetunicorns.com/");
- // klikneme na tlačítko podle id
- $(By.id("get-started")).click();
+ // klikneme na tlačítko podle id * page_object *
+ home.getStaredBtn().click();
// zkontrolujeme očekávanou URL máme dva způsoby
String url = WebDriverRunner.url();
@@ -41,11 +48,12 @@ public class HomeTest {
assertTrue(url.contains("get-started"));
// najdeme objeckt podle cssSelector a zkontrolujeme jeho text ( zde je to třída h1 class )
- $("h1")
+ // *pages object
+ home.headingTitle()
.should(text("Think different. Make different."));
- // Ověříme logo pomocí xpath
- $(By.xpath("//*[@id=\"zak-masthead\"]/div/div/div/div[1]/div/a/img"))
+ // Ověříme logo pomocí xpath * pages*
+ home.logoLink()
.should(be(visible));
}
@@ -58,7 +66,7 @@ public class HomeTest {
// vytvoříme si pak proměnou linklists
//za li[id. . .] už je id na položky v menu
List expectedLinks = List.of("Home", "About", "Shop", "Blog", "Contact", "My account");
- ElementsCollection linkLists = $$("#zak-primary-menu li[id*=menu-item]");
+ ElementsCollection linkLists = home.linksList();
// vypíšeme do console položky menu
System.out.println(linkLists.texts());
diff --git a/selenide_series/target/test-classes/pages/HomePage.class b/selenide_series/target/test-classes/pages/HomePage.class
new file mode 100644
index 0000000..7cfe7f9
Binary files /dev/null and b/selenide_series/target/test-classes/pages/HomePage.class differ
diff --git a/selenide_series/target/test-classes/specs/HomeTest.class b/selenide_series/target/test-classes/specs/HomeTest.class
index 7d949b2..4e2206e 100644
Binary files a/selenide_series/target/test-classes/specs/HomeTest.class and b/selenide_series/target/test-classes/specs/HomeTest.class differ
diff --git a/selenide_series/target/test-classes/specs/UploadTest.class b/selenide_series/target/test-classes/specs/UploadTest.class
index 003e30e..673b109 100644
Binary files a/selenide_series/target/test-classes/specs/UploadTest.class and b/selenide_series/target/test-classes/specs/UploadTest.class differ