top 10 selenium exceptions
Håndtering af undtagelser fra Selen WebDriver ved hjælp af Framework for undtagelseshåndtering - Selenium-vejledning nr. 19
At få en undtagelse i automatiseringskode er meget almindelig. 'Undtagelse', som ordet indikerer, er et specielt eller usædvanligt tilfælde.
Kørsel af automatiseringskode udføres normalt ikke som forventet på grund af mange faktorer, der er involveret i udførelse, såsom problemer med netværksstabilitet, internetproblemer, serverstabilitet osv. Vi får muligvis undtagelser på grund af utilstrækkelig ventetid eller forkerte syntakser, parametre osv.
I den sidste WebDriver-tutorial lærte vi om 3 forskellige typer vigtige webelementer som f.eks Webtabeller, rammer og dynamiske elementer og deres håndteringsmekanismer i selen-script
Før du går videre med Framework-tutorials i dette Selen træning serie, her i denne vejledning lærer vi om typer af undtagelser og hvordan man håndterer undtagelser i Java- og Selen-scripts . Udviklere / testere bruger undtagelseshåndteringsrammer til at håndtere en undtagelse i selen-scripts.
Hvad du lærer:
- Hvad er en undtagelse?
- Fordele og ulemper ved fremgangsmåden Undgå håndtering
- Typer af undtagelser i Java og Selen
- Undtagelse Håndtering
- Almindelige undtagelser i Selen WebDriver
- Undgåelse og håndtering af almindelige undtagelser
- # 1) org.openqa.selenium.NoSuchElementException
- # 2) org.openqa.selenium.NoSuchWindowException
- # 3) org.openqa.selenium.NoSuchFrameException
- # 4) org.openqa.selenium.NoAlertPresentException
- # 5) org.openqa.selenium.InvalidSelectorException
- # 6) org.openqa.selenium.ElementNotVisibleException
- # 7) org.openqa.selenium.ElementNotSelectableException
- # 8) org.openqa.selenium.TimeoutException
- # 9) org.openqa.selenium.NoSuchSessionException
- # 10) org.openqa.selenium.StaleElementReferenceException
- Konklusion
- Anbefalet læsning
Hvad er en undtagelse?
Undtagelser er begivenheder, som Java-programmet slutter pludseligt uden at give forventet output. Java giver en ramme, hvor en bruger kan håndtere undtagelser.
Processen med håndtering af undtagelser kaldes undtagelseshåndtering.
Undtagelser skal håndteres, fordi de bryder den normale strøm af udførelsen af et program. En af de vigtige intentioner med undtagelseshåndtering er at forhindre denne pause og fortsætte programudførelsen. Nogle gange vil du muligvis udføre nogle række handlinger ved forekomst af en bestemt undtagelse.
Når en undtagelse opstår, oprettes et undtagelsesobjekt, der teknisk betegnes som ' At kaste en undtagelse ' og vi tilføjer Prøv / fangst blokke som,
try { // Protected code } catch (ExceptionName e) { // Catch block }
# 1) Kodestykket, der muligvis kaster en undtagelse, tilføjes inde i prøveblokken.
#to) Catch-erklæringen fanger undtagelsen og tager den som en parameter.
# 3) Når der ikke kastes nogen undtagelse, udføres prøveerklæringen og ikke fangsterklæringen.
Eksempel : Når selen-script mislykkes på grund af den forkerte lokaliseringsenhed, skal udvikleren være i stand til at forstå årsagen til fejl, og dette kan let opnås, hvis undtagelsen håndteres korrekt i programmet.
Efter min erfaring er det bedst at forsøge at undgå WebDriver-undtagelser, når det er muligt, og fange virkelig usædvanlige tilfælde. Brug prøve / fangst til at håndtere ting, der går galt og er uden for min kontrol.
Undgå dem, jeg kan fange andre!
Dette er den bedste strategi, der har fungeret for mig.
For eksempel, overvej en testside, der tager mere end normalt tid at indlæse på en testserver. Vi får hyppige undtagelser, mens vi udfører handlinger på denne side. Så i stedet for bare at fange dette hver gang, kan vi
- Tilføj en ventekommando, og prøv at undgå en undtagelse
- Brug 'Try / Catch' til at håndtere, hvis der er sket en virkelig usædvanlig sag
Dermed reducerer chancerne for undtagelser.
Fordele og ulemper ved fremgangsmåden Undgå håndtering
Fordele | Ulemper |
---|---|
1) Denne tilgang reducerer chancerne for at få undtagelser. | 1) Øger linjerne med koder, fordi du tilføjer ekstra kode for at undgå undtagelser |
Hvis en undtagelse stadig er fanget, ville det 2) være et virkelig ekstraordinært tilfælde, som det er værd at kontrollere | 2) Bør have en bedre forståelse af Web Driver API, kommandoer og undtagelser |
Reducer fejlretningstid. Automatiseringskode er beregnet til at finde fejl, og du vil ikke se for mange uønskede 3) undtagelser og finde årsagerne til hver af dem | |
4) I fangstblokken behandler du mere gyldige sager | |
5) Reducer falske fejl | |
6) Tydeligere rapport |
I denne vejledning vil vi diskutere Undgå og håndter tilgang til de 10 mest almindelige undtagelser i Selen WebDriver. Før det, lad os få en grundlæggende forståelse af Undtagelseshåndtering og Try / Catch-blokke.
Typer af undtagelser i Java og Selen
Nedenfor har vi beskrevet typerne af undtagelser og de forskellige måder, hvordan vi kan bruge undtagelseshåndteringsrammer i selen-scripts.
Der er tre slags undtagelser:
- Kontrolleret undtagelse
- Ikke markeret undtagelse
- Fejl
Klassehierarkiet med undtagelse og fejl:
# 1) Kontrolleret undtagelse: Kontrolleret undtagelse håndteres under kompileringstid, og det giver kompileringsfejl, hvis den ikke fanges og håndteres i kompileringstiden.
Eksempel : FileNotFoundException , IOUndtagelse etc.
# 2) Ikke-markeret undtagelse: I tilfælde af den ikke-markerede undtagelse har en kompilator ikke mandat til at håndtere. Compileren ignorerer under kompileringstiden.
Eksempel : ArrayIndexoutOfBoundException
# 3) Fejl: Når et scenario er fatalt, og programmet ikke kan komme sig, kaster JVM en fejl. Fejl kan ikke håndteres af try-catch blokken. Selvom brugeren forsøger at håndtere fejlen ved hjælp af Try catch-blok, kan den ikke gendanne sig efter fejlen.
Eksempel : Påstandsfejl , OutOfMemoryError etc.
Undtagelse Håndtering
Prøv og fang blok:
prøve-fangst blokke bruges generelt til at håndtere undtagelser. Type undtagelser er angivet i fangstblok, som forventes at komme. Når en undtagelse kommer i prøveblokering, flytter kontrollen straks til fangstblok.
Eksempel :
try { br = new BufferedReader(new FileReader('Data')); } catch(IOException ie) { ie.printStackTrace(); }
Der kan være flere fangstblokke for en prøveblok afhængigt af undtagelsestypen.
Eksempel :
try { br = new BufferedReader(new FileReader('Data')); } catch(IOException ie) { ie.printStackTrace(); } catch(FileNotFoundException file){ file.printStackTrace(); }
kaster Undtagelse:
kaster nøgleord i java bruges til at kaste en undtagelse i stedet for at håndtere det. Alle kontrollerede undtagelser kan kastes efter metoder.
binært søgetræ c ++ eksempel
Eksempel :
public static void main(String() args) throws IOException { BufferedReader br=new BufferedReader(new FileReader('Data')); while ((line = br.readLine()) != null) { System.out.println(line); } }
langt om længe blok:
langt om længe , blok udfører uanset udførelse af try-catch-blok, og den udføres umiddelbart efter, at try / catch-blok er afsluttet.
Grundlæggende kan filslut, databaseforbindelse osv. Lukkes i endelig blokering.
Eksempel :
try { br = new BufferedReader(new FileReader('Data')); } catch(IOException ie) { ie.printStackTrace(); } Finally { br.close(); }
I ovenstående eksempel BufferReader stream er lukket i endelig blok. br.close () vil altid udføre uanset udførelse af forsøg og fangstblok.
Bemærk : endelig kan blok eksistere uden nogen fangstblok. Det er ikke nødvendigt at have en fangstblok altid.
Der kan være mange fangstblokke, men kun en endelig blok kan bruges.
Kan kastes : Throwable er en overordnet klasse for fejl og undtagelse. Generelt er det vanskeligt at håndtere fejl i java. Hvis en programmør ikke er sikker på typen af fejl og undtagelse, tilrådes det at bruge klassen Throwable, som kan fange både fejl og undtagelse.
Eksempel :
try { br = new BufferedReader(new FileReader('Data')); } catch (Throwable t) { t.printStackTrace(); }
Almindelige undtagelser i Selen WebDriver
Selen har sit eget sæt undtagelser. Under udvikling af selen-scripts skal en programmør håndtere eller kaste disse undtagelser.
Nedenfor er et par eksempler på undtagelser i selen:
Alle runtime-undtagelsesklasser i Selenium WebDriver hører under superklassen WebDriverException.
Selvom der er mange undtagelsesklasser under WebDriverException, ser vi ofte nedenstående.
- NoSuchElementException
- NoSuchWindowException
- NoSuchFrameException
- NoAlertPresentException
- InvalidSelectorException
- ElementNotVisibleException
- ElementNotSelectableException
- TimeoutUndtagelse
- NoSuchSessionException
- StaleElementReferenceException
detaljer :
ElementNotVisibleException : Hvis selen forsøger at finde et element, men elementet ikke er synligt på siden
NoAlertPresentException : Hvis en bruger forsøger at håndtere en advarselsboks, men alarmen ikke er til stede.
NoSuchAttributeException : Under forsøg på at få attributværdi, men attributten er ikke tilgængelig i DOM.
NoSuchElementException : Denne undtagelse skyldes adgang til et element, der ikke er tilgængeligt på siden.
WebDriverException : Undtagelse kommer, når en kode ikke kan initialisere WebDriver.
Undgåelse og håndtering af almindelige undtagelser
Lad os diskutere Undgå og håndter tilgang til de ovennævnte undtagelser:
# 1) org.openqa.selenium.NoSuchElementException
Denne almindeligt set undtagelsesklasse er en underklasse af NotFoundException klasse. Undtagelsen opstår, når WebDriver ikke kan finde og finde elementer.
Normalt sker dette, når testeren skriver forkert elementlokator i findElement (By, by) -metoden.
Overvej at i nedenstående eksempel var korrekt id for tekstfeltet 'firstfield', men testeren nævnte det forkert som 'fistfield'. I dette tilfælde kan WebDriver ikke finde elementet og org.openqa.selenium.NoSuchElementException vil blive kastet
driver.findElement(By.id('submit')).click(); Exception Handling: try { driver.findElement(By.id('submit')).click(); } catch (NoSuchElementException e)
I dette tilfælde kastes undtagelsen, selvom elementet ikke er indlæst.
Undgå-og-håndtering : Prøv at give en ventekommando.
Eksempel: Ventekommandoen nedenfor venter 10 sekunder på tilstedeværelsen af et webelement med id 'send'. Derefter forsøger det at klikke på det. Hvis elementet er tilgængeligt, men klik stadig mislykkes, fanges en undtagelse.
Brug af forsinket tid er en almindelig praksis i testautomatisering for at skabe en pause mellem trinene. Ved at tilføje et Try / Catch sikrer vi, at programmet fortsætter, selvom ventetiden ikke kunne hjælpe.
try { WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); wait.Until(ExpectedConditions.presenceOfElementLocated(By.id('submit'))); try { driver.findElement(By.id('submit')).click(); } catch (WebDriverException e) { System.out.println(“An exceptional case.”); } } catch (TimeOutException e) { System.out.println(“WebDriver couldn’t locate the element”); }
# 2) org.openqa.selenium.NoSuchWindowException
NoSuchWindowException kommer under NotFoundException klasse. Dette kastes, når WebDriver forsøger at skifte til et ugyldigt vindue.
Nedenstående kode kan kaste org.openqa.selenium.NoSuchWindowException, hvis vindueshåndtaget ikke findes eller ikke er muligt at skifte.
driver.switchTo (). vindue (handle_1);
Undgå-og-håndtering : Vi bruger vindueshåndtag til at hente sættet med aktive vinduer og derefter udføre handlinger på det samme.
I eksemplet nedenfor udføres driverskift til hvert vinduesgreb. Derfor reduceres chancerne for at videregive et forkert vinduesparameter.
for (String handle : driver.getWindowHandles()) { try { driver.switchTo().window(handle); } catch (NoSuchWindowException e) { System.out.println(“An exceptional case”); } }
# 3) org.openqa.selenium.NoSuchFrameException
Når WebDriver forsøger at skifte til en ugyldig ramme, kastes NoSuchFrameException under NotFoundException-klassen.
Nedenstående kode kan kaste org.openqa.selenium.NoSuchFrameException, hvis en ramme 'frame_11' ikke findes eller ikke er tilgængelig.
driver.switchTo (). ramme ('frame_11');
Undtagelse Håndtering:
try { driver.switchTo().frame('frame_11'); } catch (NoSuchFrameException e)
I dette tilfælde kastes undtagelsen, selvom rammen ikke er indlæst.
Undgå-og-håndtering : Prøv at give en ventekommando.
I eksemplet nedenfor venter WebDriver i 10 sekunder på, at rammen er tilgængelig. Hvis rammen er tilgængelig, og der stadig er en undtagelse, fanges den.
try { WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); wait.Until(ExpectedConditions.frameToBeAvaliableAndSwitchToIt(frame_11)); try { driver.switchTo().frame('frame_11'); } catch (WebDriverException e) { System.out.println(“An exceptional case”); } } catch (TimeOutException e) { System.out.println(“WebDriver couldn’t locate the frame”); }
# 4) org.openqa.selenium.NoAlertPresentException
NoAlertPresentException under NotFoundException kastes, når WebDriver forsøger at skifte til en alarm, som ikke er tilgængelig.
org.openqa.selenium.NoAlertPresentException vil blive kastet Hvis nedenstående automatiseringskode accepterer opkald () operation i Alert () klasse, når en alarm endnu ikke er på skærmen.
driver.switchTo (). alarm () accepter ();
Undtagelse Håndtering:
hvordan man laver generisk array i java
try { driver.switchTo().alert().accept(); } catch (NoSuchAlertException e)
I dette tilfælde kastes undtagelsen, selvom alarmen ikke er indlæst helt.
Undgå-og-håndtering : Brug altid eksplicit eller flydende ventetid i et bestemt tidspunkt i alle tilfælde, hvor der forventes en alarm. Hvis alarmen er tilgængelig, og der stadig er en undtagelse, fanges den.
try { WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); wait.Until(ExpectedConditions.alertIsPresent()); try { driver.switchTo().alert().accept(); } catch (NoAlertPresentException e) { System.out.println(“An exceptional case”); } } catch (TimeOutException e) System.out.println(“WebDriver couldn’t locate the Alert”); }
# 5) org.openqa.selenium.InvalidSelectorException
Denne underklasse af NoSuchElementException klasse opstår, når en vælger er forkert eller syntaktisk ugyldig. Denne undtagelse forekommer ofte, når XPATH locator bruges.
Overvej nedenstående eksempel:
klik påXPathButtonAndWait (“// knap (@ type =’ knap ’) (100)”);
Dette ville kaste en InvalidSelectorExeption, fordi XPATH-syntaksen er forkert.
Undgå og håndtering : For at undgå dette skal vi kontrollere den anvendte søger, fordi søgeren sandsynligvis er forkert, eller syntaksen er forkert. Brug af Firebug til at finde xpath kan reducere denne undtagelse.
Nedenstående kode viser, hvordan man håndterer det ved hjælp af Try / Catch
try { clickXPathButtonAndWait('//button(@type='button')'); } catch (InvalidSelectorException e) { }
# 6) org.openqa.selenium.ElementNotVisibleException
ElementNotVisibleException klasse er en underklasse af ElementNotInteractableException klasse. Denne undtagelse kastes, når WebDriver forsøger at udføre en handling på et usynligt webelement, som ikke kan interageres med. Det vil sige, at webelementet er i en skjult tilstand.
For eksempel, i nedenstående kode, hvis typen af knap med id 'send' er 'skjult' i HTML, org.openqa.selenium.ElementNotVisibleException vil blive kastet.
driver.findElement(By.id('submit')).click(); Exception Handling: try { driver.findElement(By.id('submit')).click(); } catch (ElementNotVisibleException e)
I dette tilfælde kastes undtagelsen, selvom siden ikke er indlæst helt.
Undgå-og-håndtering : Der er to måder at gøre dette på. Vi kan enten bruge vent på, at elementet bliver helt.
Nedenstående kode venter 10 sekunder på elementet. Hvis elementet er synligt og stadig undtagelse smides, fanges det.
try { WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); wait.Until(ExpectedConditions.visibilityOfElementLocated(By.id(”submit”)); try { driver.findElement(By.id('submit')).click(); } catch (WebDriverException e) { System.out.println(“Exceptional case”); } } catch (TimeOutException e) System.out.println(“WebDriver couldn’t find this element visible”); }
# 7) org.openqa.selenium.ElementNotSelectableException
Denne undtagelse kommer under InvalidElementStateException klasse . ElementNotSelectableException angiver, at webelementet findes på websiden, men ikke kan vælges.
For eksempel, nedenstående kode kan kaste en ElementNotSelectableException, hvis id'et 'hurtig' er deaktiveret.
Vælg rullemenu = ny Vælg (driver.findElement (By.id ('hurtig')));
Undtagelse Håndtering:
prøve {
Vælg rullemenu = ny Vælg (driver.findElement (By.id ('hurtig')));
} fange (ElementNotSelectableException e)
I dette tilfælde kastes undtagelse, selvom elementet bliver aktiveret efter et stykke tid.
Undgå-og-håndtering : Vi kan tilføje en ventekommando for at vente, indtil elementet bliver klikbart. Hvis der stadig er en undtagelse, bliver den fanget.
try { WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); wait.Until(ExpectedConditions. elementToBeClickable(By.id(”swift”)); try { Select dropdown = new Select(driver.findElement(By.id('swift'))); } catch (WebDriverException e) { System.out.println(“Exceptional case”); } } catch (TimeOutException e) System.out.println(“WebDriver found that this element was not selectable.”); }
# 8) org.openqa.selen .TimeoutException
Denne undtagelse opstår, når en kommandofuldførelse tager mere end ventetiden. Vent bruges hovedsageligt i WebDriver for at undgå undtagelsen ElementNotVisibleException.
Nogle gange indlæses testsiden muligvis ikke helt før næste kommando i programmet. Hvis WebDriver forsøger at finde et element på websiden, før siden indlæses helt, kastes undtagelsen ElementNotVisibleException. Ventekommandoer tilføjes for at undgå denne undtagelse.
Men hvis komponenterne ikke indlæses, selv efter ventetiden, undtagelsen org.openqa.selen .TimeoutException vil blive kastet.
driver.manage (). timeouts (). implicitWait (10, TimeUnit.SECONDS);
driver.get (“https://www.softwaretestinghelp.com”);
I ovenstående program tilføjes en implicit ventetid på 10 sekunder. Hvis siden www.softwaretestinghelp.com indlæses ikke på 10 sekunder, så kastes TimeoutException.
Undgå og håndtering : For at undgå dette kan vi manuelt kontrollere den gennemsnitlige tid for en side at indlæse og justere ventetiden
Eller vi kan tilføje eksplicit ventetid ved hjælp af JavaScript-eksekutor, indtil siden er indlæst.
I nedenstående eksempel bruges JavaScript-eksekutor. Efter sidenavigation kalder vi JavaScript-returdokumentet. ReadyState i 20 sekunder, indtil 'komplet' returneres.
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30)); wait.until(webDriver -> ((JavascriptExecutor)webDriver).executeScript('return document.readyState').equals('complete')); driver.get('https://www.softwaretestinghelp.com');
# 9) org.openqa.selenium.NoSuchSessionException
Denne undtagelse kastes, når en metode kaldes efter at have lukket browseren af WebDriver.quit (). Dette kan også ske på grund af problemer med webbrowsere som nedbrud, og WebDriver kan ikke udføre nogen kommando ved hjælp af driverinstansen.
For at se denne undtagelse kan nedenstående kode udføres.
driver.quit ()
Vælg rullemenu = ny Vælg (driver.findElement (By.id ('hurtig')));
Undgå og håndtering : Vælg altid den seneste stabile version af browseren for at køre Selenium Webdriver-testkasser.
Denne undtagelse kan reduceres ved hjælp af driver.quit () ved afslutningen af alle test. Forsøg ikke at bruge dem efter hver testtilfælde. Dette kan føre til problemer, når driverinstansen er nul, og kommende testsager prøver at bruge den uden initialisering.
Nedenstående kode opretter WebDriver-forekomst i @BeforeSuite TestiNG-kommentaren og ødelægger den i @AfterSuite TestiNG-kommentaren
@BeforeSuite public void setUp() throws MalformedURLException { WebDriver driver = new FirefoxDriver(); } @AfterSuite public void testDown() { driver.quit(); }
# 10) org.openqa.selenium.StaleElementReferenceException
Denne undtagelse siger, at et webelement ikke længere er til stede på websiden.
Denne fejl er ikke den samme som ElementNotVisibleException.
StaleElementReferenceException kastes, når et objekt til et bestemt webelement blev oprettet i programmet uden problemer og dog; dette element er ikke længere til stede i vinduet. Dette kan ske, hvis der var en
- Navigation til en anden side
- DOM er opdateret
- En ramme- eller vinduesafbryder
WebElement fornavn = driver.findElement (By.id ('fornavn'));
driver.switchTo (). vindue (Child_Window);
element.sendKeys (“Aaron”);
I koden ovenfor blev objektet firstName oprettet, og derefter blev vinduet skiftet. Derefter forsøger WebDriver at skrive 'Aaron' i formularfeltet. I dette tilfælde kastes StaleElementReferenceException.
Undgå og håndtering : Bekræft, at vi prøver at udføre handlingen i det rigtige vindue. For at undgå problemer på grund af DOM-opdatering kan vi bruge Dynamic Xpath
Lad os diskutere et andet eksempel.
Sig 'id' i et brugernavnfelt er 'brugernavn_1', og XPath vil være // * (@ id = ’fornavn_1?) . Når du åbner siden igen, ændrer 'id' muligvis sig til ' 'fornavn _11 '. I dette tilfælde mislykkes testen, fordi WebDriver ikke kunne finde elementet. I dette tilfælde kastes StaleElementReferenceException.
I dette tilfælde kan vi bruge en dynamisk xpath som,
try { driver.findElement(By.xpath(“//*(contains(@id,firstname’))”)).sendKeys(“Aaron”); } catch (StaleElementReferenceException e)
I eksemplet ovenfor bruges dynamisk XPATH, og hvis undtagelsen stadig findes, fanges den.
Konklusion
Undtagelseshåndtering er den væsentlige del af hvert java-program såvel som selen-script. Vi kan opbygge robust og optimal kode efter håndtering af en undtagelse på smarte måder . Og det er også en bedste praksis at håndtere undtagelser i et script, der giver dig en bedre rapport, når et program mislykkes på grund af en eller anden grund.
Her har vi forsøgt at dække processen og rammerne for undtagelseshåndtering, der kræves implementeret i selen-scripts.
Husk, at det ikke er obligatorisk at altid håndtere undtagelsen i en prøve-fangst blok. Du kan også kaste en undtagelse afhængigt af kravet i et script.
En undtagelse bør ikke ignoreres, da de bryder programudførelsen. I denne vejledning gennemgik vi forskellige undtagelser og måder at reducere chancerne for at få dem gennem manuel kontrol og koder.
Tilføjelse af ventetid kan kontrollere nogle tilfælde som 'NoSuchElementException', 'ElementNotFoundException', 'ElementNotVisibleException'.
Næste tutorial # 20 : I den kommende vejledning vil vi diskutere forskellige typer testrammer til rådighed . Vi ville også undersøge fordele og ulemper ved at bruge en avanceret rammetilgang i automatiseringstest. Vi vil diskutere detaljeret om den testdatadrevne ramme.
Send dine forespørgsler, der er relateret til undtagelseshåndtering, i Selenium WebDriver, hvis du har nogen.
Anbefalet læsning
- Java-undtagelser og undtagelseshåndtering med eksempler
- Sådan håndteres alarmer / pop op i Selen WebDriver - Selen Tutorial # 16
- AutoIt-vejledning - AutoIt-download, installation og grundlæggende AutoIt-script
- Agurk Selen Tutorial: Agurk Java Selen WebDriver Integration
- Integration af selen med JMeter
- Introduktion til Selen WebDriver - Selen Tutorial # 8
- 30+ bedste selen-tutorials: Lær selen med rigtige eksempler
- Deltids freelancing jobmulighed for seleneksperter