Tartalomjegyzék
Selenium - Java
- Szerző: Sallai András
- Copyright © Sallai András, 2023
- Web: https://szit.hu
Szükséges
Szoftver:
- VSCode
Programozói könyvtár:
- slf4j-api-x.y.z.jar - https://www.slf4j.org/
- reactive-streams.x.y-z.jar - https://www.reactive-streams.org/
- selenium-java-x.y.z.zip
Az slf4j és a Reactive-Streams letölthető a következő helyről:
Selenium
A Selenium a következő helyről tölthető le:
Keressük a Java ikont.
Kapunk egy .zip fájlt. Csomagoljuk ki.
TestNG
Demo webhely
Projekt készítése
A selenium-java-x.y.z.zip fájl tartalmát egyben másoljuk a Java projekt lib könyvtárába, lib könyvtárastól.
A Maven tárolóból letöltött másik két .jar fájlt is másoljuk ide.
app01/ |-.vscode/ | `-setting.json |-bin/ |-lib/ |-src/ | `-App.java `-README.md
A szit.hu kereső indítása
- App.java
import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; public class App { public static void main(String[] args) throws Exception { WebDriver driver = new ChromeDriver(); driver.get("https://szit.hu"); WebElement elem = driver.findElement(By.name("q")); elem.sendKeys("recept" + Keys.ENTER); Thread.sleep(5000); driver.quit(); } }
TestNG futtatás
Másoljuk a lib könyvtárba a testng-x.y.z.jar fájlt is.
Test nevű könyvtár:
- A teszteknek egy test nevű könyvtárat készítünk.
- VSCode-ban a test könyvtár felett kattintsunk jobb egér gombbal, majd:
- Add Folder to Java Source Path
app01/ |-.vscode/ | `-setting.json |-bin/ |-lib/ |-src/ |-test/ | `-TestSzit.java `-README.md
A tesztben használjuk Test annotációt és az Assert osztályt.
- test/TestSzit.java
import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.testng.Assert; import org.testng.annotations.Test; public class TestSzit { @Test public void testTitle() { WebDriver driver = new ChromeDriver(); driver.get("https://szit.hu"); WebElement elem = driver.findElement(By.name("q")); elem.sendKeys("recept" + Keys.ENTER); boolean actual = driver.getPageSource().contains("Gluténmentes"); Assert.assertTrue(actual); driver.quit(); } }
Több teszt
Az AfterTest, BeforeTest, BeforeMethod annotációkat használjuk a tesztek előkészítésére.
- test/TestSzit.java
import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.testng.Assert; import org.testng.annotations.AfterTest; import org.testng.annotations.BeforeMethod; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; public class TestSzit { WebDriver driver; @BeforeTest public void initTest() { driver = new ChromeDriver(); } @BeforeMethod public void initMethods() { driver.get("https://szit.hu"); } @Test public void testRecept() { WebElement elem = driver.findElement(By.name("q")); elem.sendKeys("recept" + Keys.ENTER); boolean actual = driver.getPageSource().contains("Gluténmentes"); Assert.assertTrue(actual); } @Test public void testAngularContent() { WebElement elem = driver.findElement(By.name("q")); elem.sendKeys("Angular" + Keys.ENTER); boolean actual = driver.getPageSource().contains("Angular"); Assert.assertTrue(actual); } @AfterTest public void endTest() { driver.quit(); } }
- @BeforeTest - Az összes teszt előtt hajtódik végre.
- @AfterTest - Az összes teszt után hajtódik végre.
- @BeforeMethod - Az összes metódus előtt végrehajtódik.
- @AfterMethod - Az összes metódus után végrehajtódik.
A tesztek végrehajtási sorrendjét a megadásuk sorrendje nem befolyásolja, csak az annotáció határozza meg a sorrendet.
A példában @AfterTest annotáció nincs.
A példa teszt megnyitja a szit.hu weboldalt, majd beírja a „recept” szót, majd megnyomja az „Enter” billentyűt. Megnézi, hogy a a találati weboldalon szerepel-e a „Gluténmentes” szót.
A következő teszt megint a szit.hu főoldalára navigál, majd beírja az Angular szót, megnyomja az „Enter” billentyűt, majd megnézi, hogy szerepel a találati weboldalon az Angular szó.
Végül a teszt bezárja a böngészőt.
TestNG prioritás
Beállítható, hogy hamarabb hajtódjon végre egy teszt.
@Test(priority = 0) //... @Test(priority = 7) //...