Download - Selenium - Praktická Část
Selenium webdriver
Selenium webdriverPraktick stOsnovaPedstaven nstroj IDE a WebDriverInstalace a konfiguraceDoporuen postupyPkazy WebDriverLoktory a XpathPraktick pkladSamostatn kolyPedstaven nstroj IDE a WebDRIVERSelenium IDEIntegrovan vvojov prostedPlugin do FirefoxuNahrvn, editace a debugovn testKompletn vvojov prostedUkldn v HTML a jinchAutomatick doplovn a identifikace elementPedstaven nstroj IDE a WebDRIVERSthnut IDEhttp://www.seleniumhq.org/download/
Ukzka prce s IDE
Pedstaven nstroj IDE a WebDRIVERSelenium WebDriverSoust Selenia 2.0Vytvoeno pro podporu dynamickch webovch strnekPodpora Javy, C#,...Narozdl od IDE podporuje i jin prohleeUmouje prce i s vce oknyINSTALACE A KONFIGURACEJava (JDK)http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Eclipse IDEhttp://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/lunasr2
Instalace a konfiguraceRestart PC
Selenium WebDriverhttp://docs.seleniumhq.org/download/
Mozilla Firefoxhttp://www.mozilla.cz/stahnout/firefox/
INSTALACE a KONFIGURACEKonfigurace EclipseVolba WorkspaceFile - New - Java Project - SeleniumSkoleniPravm tlatkem na jmno projektu - New - Package - automationPravm tlatkem na package - New - Class - FirstTestCase - zakrtnout public static void main...Instalace a konfiguracePravm tlatkem na jmno projektu - Properties - Java Build Path - Libraries - Add External JARs - zvolit Selenium soubory (Selenium-java-2.40.0.jar a obsah sloky libs)
Zkouka konfiguraceInstalace a konfiguraceWebDriver driver = new FirefoxDriver();driver.get("bis117.vse.cz");driver.findElement(By.id("btn_logon")).click();driver.findElement(By.xpath("//input[@type='submit']")).click();driver.quit();Doporuen postupyDodrovn jmennch konvenc jako v JavVolit statick indentifiktory prvkVolba parametr na zklad pedpokldanch zmnAnalza a tvorba manulnch testovacch ppadSelekce vhodnch test (redundance)Pkazy WebdriverPrce s prohleemNejzkladnj pkazy jsou oteven a zaven prohleeMnoho monch dalch pkaz
Inicializace prohleeWebDriver driver = new FirefoxDriver();Typick konvence Javy na inicializaciPkazy webdriverPkaz GETOtevr novou webovou strnku v prohleiParametr URL - pln webov adresadriver.get("http://www.google.com");
Pkazy WebdriverPkaz GET TITLEZskv titulek webov strnkydriver.getTitle();
Pkaz GET CURRENT URKZskv URL adresu souasn webov strnkydriver.getCurrentUrl();Pkazy WebdriverPkaz GET PAGE SOURCEZskv zdroj posledn naten strnkydriver.getPageSource();
Pkaz CLOSEZavr souasn okno prohleedriver.close();Pkazy WebdriverPkaz QUITZavr prohle a veker oteven oknadriver.quit();
Pkaz REFRESHAktualizuje strnky prohleedriver.navigate().refresh();Pkazy WEbdriverPkaz TONaviguje na specifickou strnkuParametr URLdriver.navigat().to("http://www.google.com");
Pkaz FORWARDFunguje jako tlatko vped v prohleidriver.navigate().forward();Pkazy WEBDRIVERPkaz BACKFunguje jako tlatko zpt v prohleidriver.navigate().back();Pkazy WEBDRIVERPrce s WebElementyPro prci s webovou strnkou jsou poteba webov prvkyNejdve je poteba identifikovat (pmo v instanci i WebElementu)Existuj pkazy Find Element a Find ElementsPKAZY WEBDRIVERFind Element vrac jen jeden objektFind Elements vrac list objektPro hledn prvk se uv loktor "By"V ppad nenaleznut prvku vrac NoSuchElementExceptionPkazy WebDriverBy IDVrac prvn objekt se zvolenm IDNejefektivnj a preferovan cesta k lokaci prvkZvisl na "inteligenci" vvoj webovch aplikacDynamick vs statick
WebElement element = driver.findElement(By.id("Hledej"));Pkazy WEbdriverBy NAMEDal z efektivnch cest k identifikaci prvkOpt zvisl na vvojch a volb statickch i dynamickch jmen
WebElement element = driver.findElement(By.name("Heslo"));
Pkazy WebdriverBy CLASS NAMEHled dle nzvu tdyProchz vechny tdy prvku
WebElement element = driver.findElement(By.className("text");Pkazy WEBDRIVERBy TAG NAMEHled dle nzvu znaky
Random text WebElement element = driver.findElement("By.tagName("td"));Pkazy webdriverBy LINK TEXTHled dle textu odkazu
vodn strnkaWebElement element = driver.findElement(By.linkText("vodn strnka"));Pkazy WEBDRIVERBy PARTIAL LINK TEXTHled na zklad sti textu odkazu
vodn strnkaWebElement element = driver.findElement(By.partialLinkText("vod"));
Pkazy WEbdriverPkazy k pepnan okenWebDriver piazuje ke kadmu oknu uniktn IDWindow handle - slou k identifikaci jednotlivch oken
Pkaz GETWINDOWHANDLEZsk Window handle souasnho oknaString handle = driver.getWindowHandle();Pkazy WEBDRIVERPkaz GETWINDOWHANDLESZsk Window hande vech souasnch okenSet handle=driver.getWindowHandles();Pkazy WEBDRIVERPkaz SWITCHTO WINDOWSlou k pepnn mezi okny
Pomoc jmna okna:driver.switchTo().window("jmenoOkna");
Pomoc Window handlefor (String handle : driver.getWindowHandles()) {driver.switchTo().window(handle);}Pkazy WEBDRIVERPkaz SWITCHTOSlou k pepnn mezi pojmenovanmi zlokamidriver.switchTo().frame("jmenoZalozky");
Podporuje tak pepnn do PopUp okenAlert alert = driver.switchTo().alert();Pot jsou podporovan metody accept, dismiss, readPkazy webdriverPkazy k eknEfektivnj ekn prohlee ne uvn Thread.sleep()
Pkaz IMPLICITLYWAITNastavuje ekn prohlee na naten prvk ped vyhozenm chybdriver.manage().timeouts().implictlyWait(10,TIMEUNIT.SECONDS);Pkazy WEBDRIVERPkaz FLUENTWAITekn s monost volby asu ekn, frekvence kontroly i ignorovn specifickch chyb
Wait wait = new FluentWait(driver).withTimeout(30, SECONDS).pollingEvery(5, SECONDS).ignoring(NoSuchElementException.class);Pkazy WEBDRIVERWebElement example = wait.until(new Function() {public WebElement apply(WebDriver driver) {return driver.findElement(By.id("example"));}});Pkazy WEBDRIVERPkaz EXPECTEDCONDITIONSekn po uritou dobu na naplnn podmnek
WebDriverWait wait = new WebDriverWait(driver, 10);WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.id("priklad")));Loktory a XPATHNejjednodu identifikace prvk je prozkoumnm prvkPravm tlatkem v okn prohlee a zvolit prozkoumat prvekZobraz se kd strnkyTam se d zvolit vhodn atribut, kter se pak pouije
Loktory a XPATHTam kde nesta jednoduch identifiktory se d pout XPATHXPATH neboli XML Path Language je PC jazyk na adresovn st XML dokumentuAbsolutn versus relativn cesta
/html/body/div[2]/div/div/footer/section[3]/div/ul/li[3]/a//body//footer/section[3]/div/ul/li[3]/aLoktory a xpathXPATH umouje tak identifikaci na zklad hledanho slova
Pokud tedy tester v, e v njakm atributu je urit slovo, kter jinde nen, me zvolit metodu contains//img[contains(@src,'Profile')]
Pop. pomoc hledanho textu//span[contains(text(), 'Pokracovat')]