top 10 selenium exceptions
Gestione delle eccezioni di Selenium WebDriver utilizzando Framework di gestione delle eccezioni - Tutorial Selenium # 19
Ottenere un'eccezione nel codice di automazione è molto comune. 'Eccezione', come indica la parola, è un caso speciale o raro.
L'esecuzione del codice di automazione di solito potrebbe non essere eseguita come previsto a causa di molti fattori coinvolti nell'esecuzione, come problemi di stabilità della rete, problemi di Internet, stabilità del server, ecc.
Nell'ultimo tutorial di WebDriver, abbiamo imparato a conoscere 3 diversi tipi di importanti elementi web come Tabelle Web, frame ed elementi dinamici e i loro meccanismi di manipolazione nello script selenio
Prima di andare avanti con i tutorial di Framework in questo Allenamento al selenio serie, qui in questo tutorial impareremo a conoscere tipi di eccezioni e come gestire le eccezioni negli script Java e Selenium . Gli sviluppatori / tester utilizzano il framework di gestione delle eccezioni per gestire un'eccezione negli script di selenio.
Cosa imparerai:
- Cos'è un'eccezione?
- Vantaggi e svantaggi dell'approccio Evita-Impugnatura
- Tipi di eccezioni in Java e Selenium
- La gestione delle eccezioni
- Eccezioni comuni in Selenium WebDriver
- Evitare e gestire le eccezioni comuni
- # 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
- Conclusione
- Lettura consigliata
Cos'è un'eccezione?
Le eccezioni sono eventi a causa dei quali il programma Java termina bruscamente senza fornire l'output previsto. Java fornisce un framework in cui un utente può gestire le eccezioni.
Il processo di gestione delle eccezioni è chiamato gestione delle eccezioni.
Le eccezioni devono essere gestite perché interrompono il normale flusso di esecuzione di un programma. Una delle intenzioni importanti della gestione delle eccezioni è impedire questa interruzione e continuare l'esecuzione del programma. A volte, potresti voler eseguire alcune serie di azioni al verificarsi di una determinata eccezione.
Quando si verifica un'eccezione, viene creato un oggetto eccezione che viene tecnicamente denominato ' Lanciare un'eccezione ' e aggiungiamo Prova a prendere blocchi come,
try { // Protected code } catch (ExceptionName e) { // Catch block }
# 1) La parte di codice che potrebbe generare un'eccezione viene aggiunta all'interno del blocco Try.
#Due) L'istruzione Catch rileva l'eccezione e la prende come parametro.
# 3) Quando non viene generata alcuna eccezione, viene eseguita l'istruzione try e non l'istruzione catch.
Esempio : Quando lo script del selenio fallisce a causa del localizzatore sbagliato, lo sviluppatore dovrebbe essere in grado di capire il motivo del fallimento e questo può essere ottenuto facilmente se l'eccezione viene gestita correttamente nel programma.
Nella mia esperienza, è meglio cercare di evitare le eccezioni di WebDriver quando possibile e catturare casi veramente eccezionali. Usa try / catch per gestire le cose che vanno male e sono fuori dal mio controllo.
Evita quelli che posso catturare gli altri!
Questa è la migliore strategia che ha funzionato per me.
Per esempio, considera una pagina di test che impiega più tempo del solito a caricarsi su un server di prova. Otterremo frequenti eccezioni durante l'esecuzione di azioni su questa pagina. Quindi, invece di prenderlo ogni volta, possiamo
- Aggiungi un comando wait e prova a evitare un'eccezione
- Utilizza 'Try / Catch' per gestire il caso in cui si sia verificato un caso veramente eccezionale
Riducendo così le possibilità di eccezioni.
Vantaggi e svantaggi dell'approccio Evita-Impugnatura
Vantaggi | Svantaggi |
---|---|
1) Questo approccio riduce le possibilità di ottenere eccezioni. | 1) Aumenta le righe di codice perché aggiungi codice extra per evitare eccezioni |
Se viene ancora rilevata un'eccezione, 2) sarebbe un caso davvero eccezionale che vale la pena controllare | 2) Dovrebbe avere una migliore comprensione dell'API del driver Web, dei comandi e delle eccezioni |
Riduci i tempi di debug. Il codice di automazione ha lo scopo di trovare bug e non vuoi vedere troppe eccezioni 3) indesiderate e trovare le ragioni dietro ciascuna di esse | |
4) Nel blocco Catch, ti occupi di casi più validi | |
5) Ridurre i falsi guasti | |
6) Rapporto più chiaro |
In questo tutorial, discuteremo Evita e maneggia approccio per le 10 eccezioni più comuni in Selenium WebDriver. Prima di ciò, acquisiamo una conoscenza di base della gestione delle eccezioni e dei blocchi Try / Catch.
Tipi di eccezioni in Java e Selenium
Di seguito abbiamo descritto i tipi di eccezioni e i diversi modi in cui possiamo utilizzare il framework di gestione delle eccezioni negli script di selenio.
come invertire l'ordine di un array in java
Esistono tre tipi di eccezioni:
- Eccezione selezionata
- Eccezione deselezionata
- Errore
La gerarchia di classi di eccezione ed errore:
# 1) Eccezione selezionata: L'eccezione controllata viene gestita durante la fase di compilazione e fornisce l'errore di compilazione se non viene rilevata e gestita durante la fase di compilazione.
Esempio : FileNotFoundException , IOException eccetera.
# 2) Eccezione non selezionata: In caso di eccezione non controllata, un compilatore non ha l'obbligo di gestire. Il compilatore ignora durante la fase di compilazione.
Esempio : ArrayIndexoutOfBoundException
# 3) Errore: Quando uno scenario è fatale e il programma non può essere ripristinato, JVM genera un errore. Gli errori non possono essere gestiti dal blocco try-catch. Anche se l'utente tenta di gestire l'errore utilizzando Try catch block, non può recuperare dall'errore.
Esempio : Errore di asserzione , OutOfMemoryError eccetera.
La gestione delle eccezioni
Blocco Try and Catch:
prova a prendere i blocchi sono generalmente usati per gestire le eccezioni. Il tipo di eccezioni è dichiarato nel blocco catch che dovrebbe arrivare. Quando arriva un'eccezione nel blocco try, il controllo si sposta immediatamente per catturare il blocco.
Esempio :
try { br = new BufferedReader(new FileReader('Data')); } catch(IOException ie) { ie.printStackTrace(); }
Possono esserci più blocchi catch per un blocco try a seconda del tipo di eccezione.
Esempio :
try { br = new BufferedReader(new FileReader('Data')); } catch(IOException ie) { ie.printStackTrace(); } catch(FileNotFoundException file){ file.printStackTrace(); }
lanci Eccezione:
lanci la parola chiave in java viene utilizzata per lanciare un'eccezione piuttosto che gestirla. Tutte le eccezioni verificate possono essere generate dai metodi.
Esempio :
public static void main(String() args) throws IOException { BufferedReader br=new BufferedReader(new FileReader('Data')); while ((line = br.readLine()) != null) { System.out.println(line); } }
infine bloccare:
infine , il blocco viene eseguito indipendentemente dall'esecuzione del blocco try-catch e viene eseguito immediatamente dopo il completamento del blocco try / catch.
Fondamentalmente la chiusura del file, la connessione al database ecc. Possono essere chiuse in blocco finale.
Esempio :
try { br = new BufferedReader(new FileReader('Data')); } catch(IOException ie) { ie.printStackTrace(); } Finally { br.close(); }
Nell'esempio sopra, BufferReader lo stream è chiuso in blocco definitivo. br.close () verrà sempre eseguito indipendentemente dall'esecuzione del blocco try and catch.
Nota : finalmente il blocco può esistere senza alcun blocco catch. Non è necessario avere sempre un blocco di cattura.
Possono esserci molti blocchi catch ma solo un blocco finalmente può essere utilizzato.
Lanciabile : Throwable è una classe genitore per errore ed eccezione. In generale, è difficile gestire gli errori in java. Se un programmatore non è sicuro del tipo di errore ed eccezione, si consiglia di utilizzare la classe Throwable che può rilevare sia l'errore che l'eccezione.
Esempio :
try { br = new BufferedReader(new FileReader('Data')); } catch (Throwable t) { t.printStackTrace(); }
Eccezioni comuni in Selenium WebDriver
Il selenio ha una propria serie di eccezioni. Durante lo sviluppo di script di selenio, un programmatore deve gestire o lanciare queste eccezioni.
Di seguito sono riportati alcuni esempi di eccezioni nel selenio:
Tutte le classi di eccezioni di runtime in Selenium WebDriver rientrano nella superclasse WebDriverException.
Sebbene ci siano molte classi di eccezione in WebDriverException, comunemente vediamo quelle di seguito.
- NoSuchElementException
- NoSuchWindowException
- NoSuchFrameException
- NoAlertPresentException
- InvalidSelectorException
- ElementNotVisibleException
- ElementNotSelectableException
- TimeoutException
- NoSuchSessionException
- StaleElementReferenceException
Dettagli :
ElementNotVisibleException : Se il selenio cerca di trovare un elemento ma l'elemento non è visibile all'interno della pagina
NoAlertPresentException : Se un utente tenta di gestire una casella di avviso ma l'avviso non è presente.
NoSuchAttributeException : Durante il tentativo di ottenere il valore dell'attributo ma l'attributo non è disponibile in DOM.
NoSuchElementException : Questa eccezione è dovuta all'accesso a un elemento non disponibile nella pagina.
WebDriverException : Si verifica un'eccezione quando un codice non è in grado di inizializzare WebDriver.
Evitare e gestire le eccezioni comuni
Parliamo dell'approccio Evita e Gestisci per le eccezioni sopra menzionate:
# 1) org.openqa.selenium.NoSuchElementException
Questa classe di eccezioni comunemente vista è una sottoclasse di NotFoundException classe. L'eccezione si verifica quando WebDriver non è in grado di trovare e individuare gli elementi.
Di solito, questo accade quando il tester scrive un localizzatore di elementi errato nel metodo findElement (By, by).
Considera che nell'esempio seguente, l'ID corretto per il campo di testo era 'firstfield' ma il tester lo ha erroneamente indicato come 'fistfield'. In questo caso, WebDriver non può individuare l'elemento e org.openqa.selenium.NoSuchElementException sarà lanciato
driver.findElement(By.id('submit')).click(); Exception Handling: try { driver.findElement(By.id('submit')).click(); } catch (NoSuchElementException e)
In questo caso, l'eccezione viene generata anche se l'elemento non è caricato.
Evitare e maneggiare : Prova a dare un comando di attesa.
Esempio: Il comando wait di seguito attende 10 secondi per la presenza di un elemento web con ID 'submit'. Quindi prova a fare clic su di esso. Se l'elemento è disponibile ma il clic non riesce ancora, viene rilevata un'eccezione.
L'utilizzo del tempo ritardato è una pratica comune nell'automazione dei test per creare una pausa tra i passaggi. Aggiungendo un Try / Catch ci assicuriamo che il programma continui anche se l'attesa non può aiutare.
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 arriva sotto NotFoundException classe. Viene generato quando WebDriver tenta di passare a una finestra non valida.
Il codice seguente può generare org.openqa.selenium.NoSuchWindowException se l'handle della finestra non esiste o non è disponibile per il cambio.
driver.switchTo (). window (handle_1);
Evitare e maneggiare : Useremmo le maniglie delle finestre per ottenere il set di finestre attive e quindi eseguire le azioni sulle stesse.
Nell'esempio seguente, per ogni handle di finestra, viene eseguito il passaggio del driver a. Pertanto le possibilità di passare un parametro di finestra errato sono ridotte.
for (String handle : driver.getWindowHandles()) { try { driver.switchTo().window(handle); } catch (NoSuchWindowException e) { System.out.println(“An exceptional case”); } }
# 3) org.openqa.selenium.NoSuchFrameException
Quando WebDriver tenta di passare a un frame non valido, viene generata NoSuchFrameException nella classe NotFoundException.
Il codice seguente può generare org.openqa.selenium.NoSuchFrameException se un frame 'frame_11' non esiste o non è disponibile.
driver.switchTo (). frame ('frame_11');
La gestione delle eccezioni:
try { driver.switchTo().frame('frame_11'); } catch (NoSuchFrameException e)
In questo caso, l'eccezione viene generata anche se il frame non è caricato.
Evitare e maneggiare : Prova a dare un comando di attesa.
Nell'esempio seguente, WebDriver attende 10 secondi prima che il frame sia disponibile. Se il frame è disponibile e c'è ancora un'eccezione, viene catturato.
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 sotto NotFoundException viene generato quando WebDriver tenta di passare a un avviso, che non è disponibile.
org.openqa.selenium.NoAlertPresentException verrà lanciato Se il codice di automazione di seguito chiama l'operazione accept () sulla classe Alert () quando un avviso non è ancora sullo schermo.
driver.switchTo (). alert (). accept ();
La gestione delle eccezioni:
try { driver.switchTo().alert().accept(); } catch (NoSuchAlertException e)
In questo caso, viene generata l'eccezione anche se l'avviso non viene caricato completamente.
Evitare e maneggiare : Utilizza sempre l'attesa esplicita o fluente per un determinato momento in tutti i casi in cui è previsto un avviso. Se l'avviso è disponibile e c'è ancora un'eccezione, viene rilevato.
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
Questa sottoclasse di NoSuchElementException class si verifica quando un selettore non è corretto o sintatticamente non valido. Questa eccezione si verifica comunemente quando viene utilizzato il localizzatore XPATH.
Considera l'esempio seguente:
clickXPathButtonAndWait ('// button (@ type =’ button ’) (100)');
Ciò genererebbe un InvalidSelectorExeption perché la sintassi XPATH non è corretta.
Evitare e maneggiare : Per evitare ciò, dovremmo controllare il localizzatore utilizzato perché probabilmente il localizzatore è errato o la sintassi è sbagliata. Usare Firebug per trovare xpath può ridurre questa eccezione.
Il codice seguente mostra come gestirlo utilizzando Try / Catch
try { clickXPathButtonAndWait('//button(@type='button')'); } catch (InvalidSelectorException e) { }
# 6) org.openqa.selenium.ElementNotVisibleException
ElementNotVisibleException class è una sottoclasse di ElementNotInteractableException classe. Questa eccezione viene generata quando WebDriver tenta di eseguire un'azione su un elemento Web invisibile, con cui non è possibile interagire. Cioè, l'elemento web è in uno stato nascosto.
Per esempio, nel codice seguente, se il tipo di pulsante con ID 'submit' è 'nascosto' in HTML, org.openqa.selenium.ElementNotVisibleException sarà lanciato.
driver.findElement(By.id('submit')).click(); Exception Handling: try { driver.findElement(By.id('submit')).click(); } catch (ElementNotVisibleException e)
In questo caso, l'eccezione viene generata anche se la pagina non è stata caricata completamente.
Evitare e maneggiare : Ci sono due modi per farlo. Possiamo utilizzare wait for the element to get completamente.
Il codice seguente attende 10 secondi per l'elemento. Se l'elemento è visibile e viene comunque generata un'eccezione, viene rilevata.
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
Questa eccezione rientra InvalidElementStateException classe . ElementNotSelectableException indica che l'elemento web è presente nella pagina web ma non può essere selezionato.
Per esempio, il codice seguente può generare un'eccezione ElementNotSelectableException se l'id 'swift' è disabilitato.
Seleziona menu a discesa = nuovo Seleziona (driver.findElement (By.id ('swift')));
La gestione delle eccezioni:
provare {
Seleziona menu a discesa = nuovo Seleziona (driver.findElement (By.id ('swift')));
} catch (ElementNotSelectableException e)
In questo caso, viene generata un'eccezione anche se l'elemento viene abilitato dopo un po '.
Evitare e maneggiare : Possiamo aggiungere un comando di attesa per attendere che l'elemento diventi cliccabile. Se è ancora presente un'eccezione, viene rilevata.
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.selenium .TimeoutException
Questa eccezione si verifica quando il completamento di un comando richiede più del tempo di attesa. Le attese vengono utilizzate principalmente in WebDriver per evitare l'eccezione ElementNotVisibleException.
A volte la pagina di prova potrebbe non caricarsi completamente prima del comando successivo nel programma. Se WebDriver tenta di trovare un elemento nella pagina Web prima che la pagina venga caricata completamente, viene generata l'eccezione ElementNotVisibleException. Per evitare questa eccezione, vengono aggiunti i comandi di attesa.
Tuttavia, se i componenti non vengono caricati anche dopo l'attesa, l'eccezione org.openqa.selenium .TimeoutException sarà lanciato.
driver.manage (). timeouts (). implicitlyWait (10, TimeUnit.SECONDS);
driver.get ('https://www.softwaretestinghelp.com');
Nel programma precedente viene aggiunta un'attesa implicita di 10 secondi. Se la pagina www.softwaretestinghelp.com non si carica entro 10 secondi, verrà generata un'eccezione TimeoutException.
Evitare e maneggiare : Per evitare ciò, possiamo controllare manualmente il tempo medio di caricamento di una pagina e regolare l'attesa
come testare manualmente i servizi web
Oppure, possiamo aggiungere l'attesa esplicita utilizzando l'esecutore JavaScript fino al caricamento della pagina.
Nell'esempio seguente, viene utilizzato l'esecutore JavaScript. Dopo la navigazione nella pagina, chiamiamo JavaScript return document.readyState per 20 secondi fino a quando non viene restituito 'complete'.
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
Questa eccezione viene generata quando un metodo viene chiamato dopo essere uscito dal browser da WebDriver.quit (). Ciò può accadere anche a causa di problemi del browser Web come arresti anomali e WebDriver non può eseguire alcun comando utilizzando l'istanza del driver.
Per vedere questa eccezione, è possibile eseguire il codice seguente.
driver.quit ()
Seleziona menu a discesa = nuovo Seleziona (driver.findElement (By.id ('swift')));
Evitare e maneggiare : Scegli sempre l'ultima versione stabile del browser per eseguire i casi di test Selenium Webdriver.
Questa eccezione può essere ridotta utilizzando driver.quit () al completamento di tutti i test. Non provare a usarli dopo ogni test case. Questo può portare a problemi quando l'istanza del driver è nulla e i test case imminenti tentano di usarla senza inizializzare.
Il codice seguente crea l'istanza WebDriver nell'annotazione @BeforeSuite TestiNG e la distrugge nell'annotazione @AfterSuite TestiNG
@BeforeSuite public void setUp() throws MalformedURLException { WebDriver driver = new FirefoxDriver(); } @AfterSuite public void testDown() { driver.quit(); }
# 10) org.openqa.selenium.StaleElementReferenceException
Questa eccezione dice che un elemento web non è più presente nella pagina web.
Questo errore non è lo stesso di ElementNotVisibleException.
StaleElementReferenceException viene generata quando un oggetto per un particolare elemento web è stato creato nel programma senza alcun problema e comunque; questo elemento non è più presente nella finestra. Questo può accadere se c'era un file
- Navigazione in un'altra pagina
- DOM è stato aggiornato
- Un interruttore per telaio o finestra
WebElement firstName = driver.findElement (By.id ('firstname'));
driver.switchTo (). window (Child_Window);
element.sendKeys ('Aaron');
Nel codice precedente, l'oggetto firstName è stato creato e quindi la finestra è stata cambiata. Quindi, WebDriver prova a digitare 'Aaron' nel campo del modulo. In questo caso viene generata StaleElementReferenceException.
Evitare e maneggiare : Conferma che stiamo tentando di eseguire l'azione nella finestra corretta. Per evitare problemi dovuti all'aggiornamento del DOM, possiamo utilizzare Dynamic Xpath
Parliamo di un altro esempio.
Supponi che 'id' di un campo nome utente sia 'nomeutente_1' e XPath lo sarà // * (@ id = ’firstname_1?) . Quando apri di nuovo la pagina, l ''id' potrebbe cambiare dire a ' 'nome di battesimo _11 ’. In questo caso, il test fallirà perché WebDriver non è riuscito a trovare l'elemento. In questo caso, verrà lanciata StaleElementReferenceException.
In questo caso, possiamo usare un xpath dinamico come,
try { driver.findElement(By.xpath(“//*(contains(@id,firstname’))”)).sendKeys(“Aaron”); } catch (StaleElementReferenceException e)
Nell'esempio precedente viene utilizzato XPATH dinamico e se l'eccezione viene ancora trovata, viene rilevata.
Conclusione
La gestione delle eccezioni è la parte essenziale di ogni programma Java e dello script selenio. Possiamo costruire codice robusto e ottimale da gestire un'eccezione in modo intelligente . Ed è anche una buona pratica gestire le eccezioni in uno script che fornirà un report migliore quando un programma fallisce per qualsiasi motivo.
Qui abbiamo cercato di coprire il processo e la struttura della gestione delle eccezioni che è necessario implementare negli script di selenio.
Ricorda che non è obbligatorio gestire sempre l'eccezione in un file prova a prendere bloccare. È inoltre possibile generare un'eccezione a seconda del requisito in uno script.
Un'eccezione non dovrebbe essere ignorata poiché interrompe l'esecuzione del programma. In questo tutorial, abbiamo esaminato diverse eccezioni e modi per ridurre le possibilità di ottenerle attraverso controlli e codici manuali.
L'aggiunta di attese può controllare alcuni casi come 'NoSuchElementException', 'ElementNotFoundException', 'ElementNotVisibleException'.
Prossimo tutorial n. 20 : Nel prossimo tutorial, discuteremo di sono disponibili vari tipi di framework di test . Vorremmo anche studiare i pro ei contro dell'utilizzo di un vero e proprio approccio quadro nei test di automazione. Discuteremo in dettaglio il framework basato sui dati di Test.
Si prega di inviare le vostre domande, relative alla gestione delle eccezioni in Selenium WebDriver, se ne avete.
Lettura consigliata
- Eccezioni Java e gestione delle eccezioni con esempi
- Come gestire avvisi / popup in Selenium WebDriver - Selenium Tutorial # 16
- Tutorial AutoIt - Download, installazione e script AutoIt di base di AutoIt
- Esercitazione sul selenio di cetriolo: integrazione con WebDriver di selenio Java di cetriolo
- Integrazione del selenio con JMeter
- Introduzione a Selenium WebDriver - Selenium Tutorial # 8
- 30+ Migliori tutorial sul selenio: impara il selenio con esempi reali
- Opportunità di lavoro freelance part-time per esperti di selenio