cz.datalite.tests.selenium.DLSelenium Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of Selenium Show documentation
Show all versions of Selenium Show documentation
Integration tests with Selenium 2.0 (WebDriver) - PageObjects pattern (still in beta)
The newest version!
//package cz.datalite.tests.selenium;
//
//import com.thoughtworks.selenium.DefaultSelenium;
//import cz.datalite.helpers.StringHelper;
//import java.util.ArrayList;
//
///**
// * Objekt, přes který java testuje pomocí browseru aplikaci.
// * Selenium jsou testy, které se naklikají přes browser a poté se v javě duplikují
// * všechny události, jakoby je dělal znovu uživatel.
// *
// * @author Michal Pavlusek
// * @version 2.0
// * @since 1.0.1 (Selenium testu)
// * @since 4.0 (JUnit testu)
// * @see
// * Selenium testy na wiki praha datalite
// */
//public class DLSelenium extends DefaultSelenium
//{
// private String adresaAplikace; // adresa, na které je dostupná aplikace na serveru
// public static final int DVE_VTERINY = 2000;
// public static final int TRI_VTERINY = 3000;
//
// /**
// * Výchozí konstruktor.
// * @param serverHost adresa selenium serveru
// * @param serverPort port selenim serveru
// * @param browserStartCommand prohlížeč, ve kterém se má test otevřít
// * @param browserURL adresa, která se má otevřít
// */
// public DLSelenium(String serverHost, int serverPort, String browserStartCommand, String browserURL)
// {
// super(serverHost, serverPort, browserStartCommand, browserURL);
// }
//
// /**
// * Nastavuje adresu aplikace na serveru.
// * @param adresaAplikace na serveru
// */
// public void setAdresaAplikace(String adresaAplikace)
// {
// this.adresaAplikace = adresaAplikace;
// }
//
// /**
// * Funkce slouží pro 0 úrovňové kliky v ZK komponentě menu.
// * @param id položka v menu, na níž chceme kliknout
// */
// public void menuClick(String id)
// {
// focusAndKey(id, java.awt.event.KeyEvent.VK_SPACE);
// }
//
// /**
// * Funkce slouží pro 1 úrovňové kliky v ZK komponentě menu.
// * @param id položka v menu, na níž vyvoláváme popup
// * @param index pořadí menuItemu odzhora (první = 1), na který cheme kliknout
// */
// public void menuClickOne(String id, Integer index)
// {
// focusAndKey(id, java.awt.event.KeyEvent.VK_SPACE);
//
// for(int i = 0; i < index; i++)
// {
// this.zmackniKlavesu(java.awt.event.KeyEvent.VK_DOWN);
// }
//
// this.zmackniKlavesu(java.awt.event.KeyEvent.VK_ENTER);
// }
//
// /**
// * Funkce kliká na button ve stránce.
// * Jedná se totiž o to, že ZK button (mold="default") není ve skutečnosti button,
// * ale pouze tabulka vypadající jako button.
// * Pokud klikáte na normální, skutečný button (mold="os"), pak stačí použí
// * normálně test.click();
// * @param id buttonu na stisknutí
// */
// public void buttonClick(String id)
// {
// id = id + "!real";
// this.click(id);
// }
//
// /**
// * Funkce čeká stanovený čas, před prováděním dalších řádků programu.
// * @param pauza délka čekání v milisekundách
// * @deprecated snažte se funkci používát co nejméně, není vhodné časovat
// * absolutně
// * @see cz.datalite.tests.selenium.DLSeleneseTestCase#pockejNaElement(java.lang.String, java.lang.String)
// * @see #vyckejNaDataVTabulce(java.lang.String)
// */
// public void pockej(Integer pauza)
// {
// try
// {
// Thread.sleep(pauza);
// }
// catch(InterruptedException ie)
// {
// notifyAll();
// }
// }
//
// /**
// * Funkce potvrdí vyskočenou otázku (modální okno zk question).
// * Otázka již musí být vyskočená v době volání této funkce
// */
// public void potvrditOtazku()
// {
// this.pockej(DVE_VTERINY);
// this.zmackniKlavesu(java.awt.event.KeyEvent.VK_SPACE);
// }
//
// /**
// * Funkce zruší vyskočenou otázku (modální okno zk question).
// * Otázka již musí být vyskočená v době volání této funkce
// */
// public void zrusitOtazku()
// {
// this.pockej(DVE_VTERINY);
// this.zmackniKlavesu(java.awt.event.KeyEvent.VK_ESCAPE);
// }
//
// /**
// * Funkce stiske klávesu a drží dokud není puštěna.
// * @param klavesa identifikační číslo klávesy
// * @see #pustKlavesu(java.lang.Integer)
// */
// public void drzKlavesu(Integer klavesa)
// {
// this.keyDownNative(klavesa.toString());
// }
//
// /**
// * Funkce pustí drženou klávesu.
// * @param klavesa identifikační číslo klávesy
// * @see #zmackniKlavesu(java.lang.Integer)
// */
// public void pustKlavesu(Integer klavesa)
// {
// this.keyUpNative(klavesa.toString());
// }
//
// /**
// * Funkce zmáčkne klávesu identifikovanou pod číslem "klavesa".
// * Funkci můžete poslat buď rovnou číslo klávesy, nebo ho vrací
// * java.awt.event.KeyEvent.požadovaná klávesa
// * @see
// * Přehled kláves
// * @param klavesa identifikační číslo klávesy
// */
// public void zmackniKlavesu(Integer klavesa)
// {
// this.keyPressNative(klavesa.toString());
// }
//
// /**
// * Funkce zmáčkne klávesu známou jako "klavesa".
// * Zatím funkce zná: enter, space, nahoru,
// * dolu;
// * @param klavesa název klávesy
// */
// public void zmackniKlavesu(String klavesa)
// {
// ArrayList seznam = new ArrayList();
// seznam.add("enter");seznam.add("space");seznam.add("nahoru");seznam.add("dolu");
//
// switch(seznam.indexOf(klavesa))
// {
// case 0: zmackniKlavesu(java.awt.event.KeyEvent.VK_ENTER); break;
// case 1: zmackniKlavesu(java.awt.event.KeyEvent.VK_SPACE); break;
// case 2: zmackniKlavesu(java.awt.event.KeyEvent.VK_UP); break;
// case 3: zmackniKlavesu(java.awt.event.KeyEvent.VK_DOWN); break;
//
// default: break;
// }
// }
//
// /**
// * Funkce vepíše text do jakéhokoliv vstupního pole "kam".
// * @param kam vstupní pole
// * @param text na vypsání
// */
// public void napis(String kam, String text)
// {
// this.type(kam, text);
// this.fireEvent(kam, "blur");
// }
//
// /**
// * Funkce napíše volný text na vstup klávesnice.
// */
// public void napisText()
// {
// napisDlouhyText(1, java.awt.event.KeyEvent.VK_SPACE);
// }
//
// /**
// * Funkce napíše volný text na vstup klávesnice o určené délce a zakončení.
// * Každá věta má 30 znaků (včetně naší klávesy zakončení).
// * @param kolikVet zadává počet vět, který chceme vypsat za sebou
// * @param oddelovacVet je identifikační číslo klávesy, která má být stisknuta
// * po každé větě
// */
// public void napisDlouhyText(Integer kolikVet, Integer oddelovacVet)
// {
// for(int i=0; i
// * Pozor! Spoléhá se na to, že již máme focus na správném místě.
// */
// public void smazVsechenText()
// {
// drzKlavesu(java.awt.event.KeyEvent.VK_CONTROL);
// zmackniKlavesu(java.awt.event.KeyEvent.VK_A);
// pustKlavesu(java.awt.event.KeyEvent.VK_CONTROL);
// zmackniKlavesu(java.awt.event.KeyEvent.VK_DELETE);
// }
//
// /**
// * Funkce smaže všechen text na specifikováném místě.
// * @param kde je id políčka, kde chceme smazat text
// */
// public void smazVsechenText(String kde)
// {
// focus(kde);
// smazVsechenText();
// this.fireEvent(kde, "blur");
// }
//
// /**
// * Funkce nás přihlasí do aplikace.
// * @param kam adresa požadované stránky
// * @param idJmeno je ID inputu, do kterého se píše jméno
// * @param jmeno přihlašovací jméno
// * @param idHeslo je ID inputu, do kterého se píše heslo
// * @param heslo přihlašovací heslo
// * @param odeslat je ID buttonu, na který se kliká pro přihlášení
// * @param cekat zda se má čekat na nahrátí další stránky nebo ne (nesmí se čekat na modální okna)
// */
// public void prihlasit(String kam, String idJmeno, String jmeno, String idHeslo, String heslo, String odeslat, String cekat)
// {
// this.open(kam);
// this.type(idJmeno, jmeno);
// this.type(idHeslo, heslo);
// this.click(odeslat);
//
// if(cekat.equalsIgnoreCase("A"))
// {
// this.waitForPageToLoad("30000");
// }
// }
//
// /**
// * Funkce nás odhlásí z aplikace.
// * @param odhlasit ID buttonu, na který se kliká pro odhlášení
// */
// public void odhlasit(String odhlasit)
// {
// this.click(odhlasit);
// this.waitForPageToLoad("30000");
// this.pockej(DVE_VTERINY);
// }
//
// /**
// * Funkce otevře novou stránku v naší aplikaci nalézající se na adrese "kam"e.
// * @param stranka adresa stránky pro otevření
// */
// public void otevrit(String stranka)
// {
// this.open(adresaAplikace + "/" + stranka);
// this.waitForPageToLoad("30000");
// }
//
// /**
// * Funkce vybere první záznam v comboboxu "combo".
// * Combobox ovšem musí být do této chvíle prázdný, aby funkce fungovala
// * podle představ, jinak používejte spíše funkci vyberVComboboxu
// * @param combo je combobox, v němž chceme vybrat první položku
// * @see #vyberVComboboxu(java.lang.String, java.lang.Integer)
// * @see #vyberVComboboxu(java.lang.String, java.lang.Integer, boolean)
// * @deprecated tato funkce se nechová vůbec podle očekávání z jejího názvu,
// * časem bude přepsána na jinou funkcionalitu, aby se tak chovala
// */
// public void vyberPrvniVComboboxu(String combo)
// {
// vyberVComboboxu(combo, 1);
// }
//
// /**
// * Funkce vybere záznam v comboboxu "combo", který je na pozici "pozice" od
// * zhora dolů.
// * Chceme-li vybrat záznam směrem nahoru, zadáme číslo záporné.
// * @param combo je combobox, v němž chceme vybrat záznam
// * @param pozice je pozice záznamu, který chceme vybrat (další záznamy = 1
// * a větší, předchozí záznamy -1 a menší Od FOCUSu!).
// */
// public void vyberVComboboxu(String combo, Integer pozice)
// {
// vyberVComboboxu(combo, pozice, StringHelper.isNull(this.getValue(combo)));
// }
//
// /**
// * Funkce vybere záznam v comboboxu "combo", který je na pozici "pozice" od
// * zhora dolů.
// * Chceme-li vybrat záznam směrem nahoru, zadáme číslo záporné.
// * @param combo je combobox, v němž chceme vybrat záznam
// * @param pozice je pozice záznamu, který chceme vybrat (další záznamy = 1
// * a větší, předchozí záznamy -1 a menší).
// * @param prazdne říká, jestli je combo prázdné nebo jestli už má nějaký
// * záznam vybraný
// */
// public void vyberVComboboxu(String combo, Integer pozice, boolean prazdne)
// {
// String kam;
//
// if(pozice > 0) {kam = "dolu";}
// else {kam = "nahoru";}
//
// pozice = Math.abs(pozice);
// if(!prazdne) {pozice++;}
//
// for(int i = 1; i <= pozice; i++)
// {
// this.focus(combo);
// this.zmackniKlavesu(kam);
// this.fireEvent(combo, "blur");
// }
// }
//
// /**
// * Funkce přidá v FCK editoru smajlík do textu, který se nachází na pozici,
// * kde se protíná řádek se sloupcem.
// * Pozor! Je problém u smajlíků,
// * kteří se kryjí s jinými hodnatami. Problém je u: smajlíka -
// * 1 řádek, 1 sloupec
// * 1 řádek, 2 sloupec
// * 1 řádek, 3 sloupec
// * @param radek číslo řádku v okně smajlíků (začíná od 1)
// * @param sloupec číslo sloupce v okně smajlíků (začíná od 1)
// */
// public void fckAddSmile(Integer radek, Integer sloupec)
// {
// String adresaSmajliku = "//tr[o]/td[a]/img";
//
// adresaSmajliku = adresaSmajliku.replace("o", radek.toString());
// adresaSmajliku = adresaSmajliku.replace("a", sloupec.toString());
//
// this.click("//td[@id='xToolbar']/table[9]/tbody/tr/td[6]/div/img");
// this.pockej(TRI_VTERINY);
// this.click(adresaSmajliku);
// }
//
// /**
// * Funkce zavolá focus na "id" a poté zmáčkne klávesu "key".
// * Používá se pouze interně pro funkce jako menuClick
// * @param id id komponenty
// * @param key je identifikační číslo klávesy pro stisknutí
// *
// * @see
// * Přehled kláves
// */
// private void focusAndKey(String id, Integer key)
// {
// this.focus(id);
// this.zmackniKlavesu(key);
// }
//
// /**
// * Funkce vrací aktuální počet záznamů v tabulce "tabulka".
// * @param tabulka , ve které chceme zjistit počet záznamů
// * @return počet záznamů v tabulce
// */
// public Integer pocetZaznamuVTabulce(String tabulka)
// {
// String xpathAdresa = "//table[@id='xxx!cave']/tbody[2]/tr";
// xpathAdresa = xpathAdresa.replace("xxx", tabulka);
//
// return this.getXpathCount(xpathAdresa).intValue();
// }
//
// /**
// * Funkce vrací kompletní xpath adresu pro element v tabulce nacházející se
// * na prusečíku hodnoty řádku a sloupce.
// * Příklad:
// * test.napis(xpathAdresaProElementVTabulce(dtl_tabulka, 2, 3));
// * @param tabulka je tabulka, ve které chceme nalést element
// * @param radek řádek v tabulce, ve kterém se nachází element
// * @param sloupec sloupec v tabulce, ve kterém se nachází element
// * @param element element v tabulce (zda se tam jedná o label, textbox,
// * combobox apod.
// * @return xpath adresu na element, nad kterou se dají provádět jakékoliv
// * další události
// */
// public String xpathAdresaProElementVTabulce(String tabulka, Integer radek, Integer sloupec, HTMLElementy element)
// {
// String xpathAdresa = "xpath=//table[@id='x%t!cave']/tbody[2]/tr[x%r]/td[x%s]/div/x%e";
//
// xpathAdresa = xpathAdresa.replace("x%t", tabulka);
// xpathAdresa = xpathAdresa.replace("x%r", radek.toString());
// xpathAdresa = xpathAdresa.replace("x%s", sloupec.toString());
// xpathAdresa = xpathAdresa.replace("x%e", element.getHtml());
//
// return xpathAdresa;
// }
//
// /**
// * Funkce čeká, až se do tabulky "tabulka" promítne námi požadovaný počet
// * záznamů "pocetZaznamu".
// *
// * - Až se promítne, funkce se ukončí a vrátí true.
// * - Nepromítne-li se, funkce vrací false.
// *
// * @param tabulka je tabulka ve které chceme záznamy
// * @param pocetZaznamu je počet záznamů, který chceme v tabulce
// * @return false = počet záznamů nenalezen; true = nalezeno
// */
// public boolean vyckejNaDataVTabulce(String tabulka, Integer pocetZaznamu)
// {
// Integer i = 0;
// Integer zaznamy;
//
// for( ; ; )
// {
// if(i > 29)
// {
// return false;
// }
//
// i++;
// zaznamy = pocetZaznamuVTabulce(tabulka);
//
// if(pocetZaznamu == zaznamy)
// {
// this.pockej(100);
// return true;
// }
// else
// {
// this.pockej(500);
// continue;
// }
// }
// }
//
// /**
// * Funkce čeká na to, až se do tabulky "tabulka" promítne nějaká změna v
// * počtu záznamů.
// *
// * - Nepromítne-li se, funkce vrací false.
// * - Promítne-li se, ale výsledný počet záznamů = 0, vrací false.
// * - Promítne-li se a najde nějaké nové záznamy, vrací true.
// *
// * @param tabulka je tabulka ve které chceme záznamy
// * @return false = nenalezena změna v tabulce nebo je počet nových záznamů 0;
// * true = nalezena změna a nové záznamy
// */
// public boolean vyckejNaDataVTabulce(String tabulka)
// {
// Integer predchoziZaznamy = pocetZaznamuVTabulce(tabulka);
// Integer zaznamy;
//
// for(int i = 0; i < 30; i++)
// {
// zaznamy = pocetZaznamuVTabulce(tabulka);
//
// if(predchoziZaznamy == zaznamy)
// {
// this.pockej(500);
// continue;
// }
// else if(zaznamy == 0)
// {
// return false;
// }
// else
// {
// return true;
// }
// }
//
// return false;
// }
//
// /**
// * Funkce klikne na prvek pod id "kam" a předá mu i rovnou focus (nutné
// * např. pro tabulky)
// * @param kam id prvku, na který cheme kliknout
// */
// public void klikni(String kam)
// {
// this.click(kam);
// this.focus(kam);
// }
//
// /**
// * Výčtový typ pro HTML elementy.
// * Používá se ve funkci xpathAdresaProElementVTabulce.
// */
// public enum HTMLElementy
// {
// LABEL (""),
// TEXTBOX ("input"),
// COMBOBOX("/span/input"),
// CHECKBOX("/span/input");
//
// private final String html;
//
// HTMLElementy(String html)
// {
// this.html = html;
// }
//
// public String getHtml()
// {
// return html;
// }
// }
//
//}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy