Belangrijke Selenium-webdriveropdrachten van 2021

In deze reeks tutorials zullen we alles leren over alle uitgebreide selenium-webdriveropdrachten, beginnend bij de zeer basale seleniumopdrachten tot de geavanceerde Selenium-webdriveropdrachten in de onderstaande volgorde van artikelen: 

Basis Selenium Webdriver-opdrachten - Vragen: 

Gemiddeld selenium webstuurprogramma commando's -Vragen:

Geavanceerde Selenium WebDriver-opdrachten -Vragen:

Selenium basiscommando's - Antwoorden: 

selenium webdriver-opdrachten
Selenium webdriver-opdrachten

Selenium navigeer naar url:

Als we in Selenium Webdriver willen navigeren of een specifieke URL via onze browser willen openen, dan kunnen we dit in twee verschillende benaderingen doen, een met de methode get () en een andere met navigeren, we zullen kijken hoe het zou kunnen zijn gedaan : 

public void getUrl(String url) {probeer {driver.get(url); BASE_LOGGER.info("Succesvol genavigeerd naar de URL als: " + url); } catch (Exception ex) { String exceptionData = ex.getCause().getMessage(); BASE_LOGGER.error("Kan niet navigeren naar URL : " + url + " met de fout als : " + exceptionData); } }

De code die u kunt schrijven om de url te navigeren is driver.get ("http://example.com"), terwijl de driver de Webdriver-instantie van de Selenium WebDriver-interface is.

bezoek hier om te begrijpen hoe u alle browsers in Selenium start.

Hoe werkt de get-methode intern in Selenium: 

Zodra deze methode get () wordt aangeroepen vanuit uw testscript, wordt Webdriver-referentie gebruikt, dwz de driver wacht tot de pagina is geladen, de methode get () wordt in feite intern geactiveerd onload functie die de handle teruggeeft aan uw stuurprogramma-referentie zodra de pagina volledig is geladen.

Selenium navigeer vooruit en navigeer terug:

Een andere manier om met de browsergeschiedenis naar de URL te navigeren, is door de methode browse () te gebruiken, waarbij de Selenium de geschiedenis van de browser gebruikt om vooruit of terug te navigeren met uw respectieve URL's, zoals: 

Selenium navigeer vooruit

public void navigationForward() { probeer { driver.navigate().forward(); BASE_LOGGER.info("Succesvol vooruit genavigeerd" ); } catch (Exception ex) { String exceptionData = ex.getCause().getMessage(); BASE_LOGGER.error("Kan niet navigeren met de fout als: " + exceptionData); } }

Selenium Navigeer terug: 

public void navigationBack() { probeer { driver.navigate().back(); BASE_LOGGER.info("Succesvol terug genavigeerd naar de URL "); } catch (Exception ex) { String exceptionData = ex.getCause().getMessage(); BASE_LOGGER.error("Kan niet navigeren Terug naar URL: met de fout als: " + exceptionData); } }

Selenium vernieuwingspagina

We kunnen de refresh () -methode van Selenium-navigatie gebruiken 

public void seleniumRefreshPage() { probeer { driver.navigate().refresh(); BASE_LOGGER.info("Succesvol gedaan met de Selenium Refresh Page"); } catch (Exception ex) { String exceptionData = ex.getCause().getMessage(); BASE_LOGGER.error("Kan Selenium Refresh Page niet uitvoeren: met de fout als: " + exceptionData); } }

Selenium klik

Om een ​​klikbewerking uit te voeren met Selenium-klik, moeten we de methode click () gebruiken in de onderstaande benadering, er zijn andere manieren om een ​​klikbewerking uit te voeren op een van de WebElementen in Selenium, bijvoorbeeld door JavaScriptClick te gebruiken, wat soms erg handig is, afhankelijk van de situaties waar uw normale Selenium-klikmethode op een zeer stabiele manier werkt, zijn er enkele gevallen waarin als u automatiseert met de IE-browser en als de te testen webtoepassing is gebouwd in een soort bootstrap JS, de normale selenium-klikmethode soms niet werkt , in dat geval kunt u de Javascript-klikmethode gebruiken.

public void safeClick (per element) { probeer { driver.findElement (element).klik (); BASE_LOGGER.info("Safeclick-bewerking is uitgevoerd voor de locator: " + String.valueOf(element)); } catch (Uitzondering e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Er is een fout opgetreden dwz: " + exceptionData + " tijdens het uitvoeren van Safeclick op het element: " + element); } }

U kunt het element doorgeven met verschillende locatorstrategieën (bijv. Xpath, naam, css enz.) In de methode findElement () en vervolgens de methode click () uitvoeren zoals hierboven.

Selenium verzendsleutels

Wanneer we wat tekst in een tekstvak moeten invoeren via Selenium, maken we gebruik van de Selenium sendkeys () methode door de "In te voeren tekst" als parameter in de methode sendKeys ("In te voeren tekst") door te geven en vergelijkbaar met de methode click () deze methode wordt ook toegepast op elk webElement (hier webtekstvak), dus we moeten driver.findElement gebruiken om de tekst naar dat tekstvak te sturen.

De voorbeeldcode gaat als volgt: 

public void enterTextIntoElement (Per element, String textToBeEntered) { probeer { driver.findElement (element).sendKeys (textToBeEntered); BASE_LOGGER.info( "enterTextIntoElement operatie is uitgevoerd voor de locator: " + String.valueOf(element)); } catch (Exception ex) { String exceptionData = ex.getCause().getMessage(); BASE_LOGGER.error("enterTextIntoElement-bewerking is mislukt voor de locator: " + String.valueOf(element) + " met de uitzondering dwz: " + exceptionData); } }

Selenium duidelijk tekstveld

Als we gegevens uit een eerder gevuld tekstveld willen wissen, kunnen we de methode clear () gebruiken en ook met de hulp van Keys Class in Selenium kunnen we dit doen, waardoor we de toetsenbordbewerkingen rechtstreeks kunnen uitvoeren samen met sneltoetsen :

Om de gegevens te wissen met behulp van de clear () -methode, kunnen we in de onderstaande benadering schrijven: 

public void clearField (per element) { probeer { driver.findElement (element). clear (); BASE_LOGGER.info("ClearField-bewerking is uitgevoerd voor de locator: " + String.valueOf(element)); } catch (Uitzondering e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error ("ClearField-bewerking is mislukt voor de locator: " + String.valueOf(element) + " met uitzondering van: " + exceptionData); } }

Door de klasse Keys te gebruiken, kunnen we ook de tekstvelden leegmaken in de volgende benadering.

Selenium maximaliseert venster

Als we met Browser Automation werken als we het venster in Selenium moeten maximaliseren, kunnen we de volgende benaderingen gebruiken: 

Selenium Venster maximaliseren met behulp van de methode Maximize ():  

public void maximumWindow() { probeer { driver.manage().window().maximize(); BASE_LOGGER.info("Succesvol het venster gemaximaliseerd"); } catch (Uitzondering e) { BASE_LOGGER.info("Uitzondering deed zich voor tijdens het maximaliseren van het venster als: " + e.getCause().getMessage()); } }

Selenium Maximaliseer venster met ChromeOptions voor ChromeBrowser:

Door de onderstaande methode te gebruiken, stellen we een Chrome-browserinstantie in voor Webdriver in gemaximaliseerde modus en de geretourneerde stuurprogramma-sessie zal doorgaan met dezelfde functie (dwz venster maximaliseren) voor verdere webbewerking volgens het script.

openbare WebDriver openBrowserInMaximizeWindow(){ probeer { ChromeOptions options = new ChromeOptions(); options.addArguments("start-gemaximaliseerd"); WebDriver-stuurprogramma = nieuwe ChromeDriver (opties); }catch(Uitzondering e){ BASE_LOGGER.error("Uitzondering aangetroffen met : " + e.getCause().getMessage()); } retourchauffeur; }

Selenium minimaliseert venster

We kunnen het venster minimaliseren met de opdracht Selenium minimaliseren () met de volgende aanpak:  

public void minimalWindow() { probeer { driver.manage().window().minimize(); BASE_LOGGER.info("Het venster is met succes geminimaliseerd"); } catch (Uitzondering e) { BASE_LOGGER.info("Uitzondering deed zich voor tijdens het minimaliseren van het venster als: " + e.getCause().getMessage()); } }

Selenium browser sluiten:

Om de browser in Selenium te sluiten, gebruiken we de methode close () in de onderstaande benadering: 

public void closeCurrentWindow() { probeer { if (null != driver) { driver.close(); BASE_LOGGER.info("Succesvol gesloten venster/browser"); } else { BASE_LOGGER.info("Kan de huidige Windows/browser-instantie niet sluiten als zijn NULL"); } } catch (Uitzondering e) { BASE_LOGGER.info("Er is een uitzondering opgetreden tijdens het sluiten van het huidige venster/de huidige browser"); } }

Selenium sluit de browser af

Om alle browserinstanties in Selenium te stoppen, gebruiken we de methode quit () in de onderstaande benadering: 

public void quitBrowser() { probeer { if (null != driver) { driver.quit(); BASE_LOGGER.info("Succesvol VERLATEN Browser"); } else { BASE_LOGGER.info("Kan de browser niet STOPPEN als zijn NULL"); } } catch (Uitzondering e) { BASE_LOGGER.error("Uitzondering trad op tijdens het AFSLUITEN van de browser"); } }

Verschil tussen driver.close () en driver.quit () in Selenium:

Intermediate Selenium webdriver-opdrachten - antwoorden:

Dropdown in selenium:

In de DOM-structuur van de webpagina wordt de vervolgkeuzelijst geïmplementeerd door HTML te selecteren of in te voeren. Om met de vervolgkeuzelijst met Selenium te werken en bepaalde 

webbewerkingen in de vervolgkeuzelijsten, moeten we de klasse "Select" van de Selenium WebDrivers API gebruiken als onderdeel van "org.openqa.selenium.support.ui”Pakket van Selenium WebDriver. 

Er zijn 2 verschillende probleemstellingen of vragen tijdens het werken met de Selectie van DropDown in Selenium: 

Selectie van één element in een vervolgkeuzelijst tegelijk

In de onderstaande aanpak kunnen we werken met Dropdown:  

Stap een :

U moet op de onderstaande manier een handle voor het DropDown WebElement maken met behulp van Select class Object creation:

Select select = nieuw Select (WebElement webelement);

Stap twee : 

Er zijn 3 verschillende benaderingen om de waarde uit de vervolgkeuzelijst in Selenium te selecteren, we kunnen een van de onderstaande methoden gebruiken om de waarde uit de vervolgkeuzelijst in Selenium te selecteren: 

Hier is de onderstaande aanpak die we kunnen gebruiken om een ​​waarde te selecteren in de vervolgkeuzelijst: 

Dropdown in selenium - Aanpak één: 
In de Approach One kunt u de tekst die zichtbaar is van de gewenste selectie van het webelement.

public void selectFromDropDownByText(By locator, String visibleText) {probeer {Select dropDownElement = new Select(driver.findElement(locator)); dropDownElement.selectByVisibleText(visibleText); BASE_LOGGER.info("SelectFromDropDownByText operatie is uitgevoerd voor de locator : " + String.valueOf(locator)); } catch (Uitzondering e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Er is een fout opgetreden dwz: " + exceptionData + " tijdens het uitvoeren van selectFromDropDownByText op het element: " + locator); } }

In de bovenstaande methode kunt u de locator van de vervolgkeuzelijst en de zichtbare tekst die u wilt selecteren uit de vervolgkeuzelijst doorgeven, waarna het de gewenste bewerking zal uitvoeren door het verwachte vervolgkeuzemenu te selecteren. 

Dropdown in selenium - benadering twee:

In deze benadering selecteert u het Webelement door het waardeattribuut van de gewenste WebElement-selectie uit de vervolgkeuzelijst te gebruiken: 

public void selectFromDropDownByValue(By locator, String visibleText) {probeer {Select dropDownElement = new Select(driver.findElement(locator)); dropDownElement.selectByValue ("Gewenste waarde van het webelement"); BASE_LOGGER.info("selectFromDropDownByValue operatie is uitgevoerd voor de locator : " + String.valueOf(locator)); } catch (Uitzondering e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Er is een fout opgetreden dwz: " + exceptionData + " tijdens het uitvoeren van selectFromDropDownByValue op het element: " + locator); } }

In de bovenstaande methode kunt u de locator van de vervolgkeuzelijst en het waardeattribuut van het WebElement dat u wilt selecteren uit de vervolgkeuzelijst doorgeven, waarna het de gewenste bewerking zal uitvoeren door het verwachte vervolgkeuzelijstelement te selecteren. 

Dropdown in selenium - benadering drie:

In deze benadering selecteert u het Webelement door de index (volgorde van het WebElement in de HTML-selectietag) van de gewenste WebElement-selectie uit de vervolgkeuzelijst te gebruiken, de index begint doorgaans bij 0:

public void selectFromDropDownByIndex(By locator, String visibleText) {probeer {Select dropDownElement = new Select(driver.findElement(locator)); dropDownElement.selectByIndex(5); BASE_LOGGER.info("selectFromDropDownByIndex operatie is uitgevoerd voor de locator : " + String.valueOf(locator)); } catch (Uitzondering e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Er is een fout opgetreden, dwz: " + exceptionData + " tijdens het uitvoeren van selectFromDropDownByIndex op het element: " + locator); } }

In de bovenstaande methode kunt u de locator van de vervolgkeuzelijst en index / volgorde van het WebElement (in de Select Tag van de Dropdown) die u wilt selecteren uit de vervolgkeuzelijst doorgeven, waarna het de gewenste bewerking uitvoert door het verwachte vervolgkeuzelijstelement te selecteren .

Selectie van meerdere elementen in een vervolgkeuzelijst tegelijk 

Het hangt af van de HTML DOM-structuur en implementatie of een dropdown-element een meervoudige selectie van elementen mag hebben. Om meerdere elementen in Selenium te selecteren, moeten we onderstaande twee stappen volgen: 

Stap een : Controleer of het DropDown WebElement de meervoudige selectie toestaat door de methode te gebruiken isMultiple (), dit retourneert boolean als true of false.

Stap twee : als de bovenstaande stap true retourneert, staat de vervolgkeuzelijst meervoudige selectie toe. en daarna kunnen we de hierboven besproken alle drie verschillende benaderingen gebruiken om meerdere waarden te selecteren en de gewenste bewerkingen uit te voeren.

Dus om hieronder te concluderen is de voorbeeldcode:

WebElement element =driver.findElement(By.xpath("XPATH OF THE DropDown")); Selecteer selectMultiple = nieuw Select(element); if(selectMultiple.isMultiple()){ selectMultiple.selectByIndex(1); selectMultiple.selectByIndex(2); // Op dezelfde manier kunnen we andere benaderingen/methode gebruiken voor het selecteren van dropdown-elementen zoals selectByVisibleText of selectByValue}

Slepen en neerzetten in selenium :

In het tutorialsegment zullen we alle verschillende benaderingen van slepen en neerzetten in Selenium leren, zoals: 

Wat is slepen en neerzetten in Selenium en waar wordt het gebruikt: 

Slepen en neerzetten is een specifieke bewerking wanneer gebruikers naar uw webapplicaties navigeren en een bewerking (slepen door muisbeweging) proberen uit te voeren op een webelement dat vrij over de applicatie kan bewegen en kan worden neergezet op een andere locatie van de webpagina van die applicatie. 

Hier wordt het element dat wordt gesleept een Source WebElement genoemd en het element waar het wordt neergezet wordt een Destination WebElement genoemd. 

Om de bovenstaande scenario's uit te voeren via automatisering met Selenium, moeten we de functies slepen en neerzetten die door Selenium worden geleverd.

Verschillende benaderingen van slepen en neerzetten in selenium:

Slepen en neerzetten in Selenium met de Build () -methode: 

Hoe de Build () -methode intern werkt :

build () methode uit de Actions-klasse in Selenium die deel uitmaakt van het pakket org.openqa.selenium.interacties genereert intern een samengestelde acties 

door alle acties te combineren die zijn aangeroepen of geactiveerd voordat de build () - methode werd aangeroepen.

Bijvoorbeeld :

new Actions(driver).clickAndHold(sourceElement).moveToElement(destinationElement) .release(destinationElement).build();

De bovenstaande instructie om het bouwen van een drag-and-drop-operatie uit te voeren, wordt gebruikt om de eerdere acties te binden, zoals clickAndHold, moveToElement en release-methoden.

Hier is het onderstaande codefragment om het slepen en neerzetten in Selenium uit te voeren met behulp van de build-methode van de Actions-klasse: 

public void dragAndDrop (op bron, op bestemming) { probeer { WebElement sourceElement = driver.findElement (bron); WebElement destinationElement = driver.findElement(bestemming); Actions builder = nieuwe Actions (stuurprogramma); Actie dragAndDrop = builder.clickAndHold(sourceElement).moveToElement(destinationElement) .release(destinationElement).build(); dragAndDrop.perform(); BASE_LOGGER.info("Succesvol uitgevoerde slepen en neerzetten actie "); } catch (Uitzondering e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Er is een fout opgetreden, dwz: " + exceptionData + " tijdens het uitvoeren van DragAndDrop "); } }

Slepen en neerzetten in Selenium met de methode dragAndDrop ():

Hoe de methode dragAndDrop () intern werkt:

De dragAndDrop-methode (sourceWebElement, destinationWebElement) heeft in principe twee argumenten, de ene is source en de andere is het bestemmingswebelement. 
dragAndDrop verwijdert de noodzaak van clickAndHold, moveToElement, releasemethoden in de klasse Action, het behandelt intern alle scenario's die door deze methoden worden uitgevoerd.

Hier is het onderstaande codefragment voor het uitvoeren van dragAndDrop met de methode dragAndDrop:

public void dragAndDropOps (op bron, op bestemming) { probeer { WebElement sourceElement = driver.findElement (bron); WebElement destinationElement = driver.findElement(bestemming); Actions builder = nieuwe Actions (stuurprogramma); builder.dragAndDrop(sourceElement,destinationElement).perform(); BASE_LOGGER.info("Succesvol uitgevoerde slepen en neerzetten actie "); } catch (Uitzondering e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Er is een fout opgetreden, dwz: " + exceptionData + " tijdens het uitvoeren van DragAndDrop "); } }

Slepen en neerzetten in Selenium met de methode dragAndDropBy ():

Hoe dragAndDropBy (WebElement source, int xOffset, int yOffset) methode intern werkt:

De methode dragAndDropBy () accepteert 3 argumenten die zijn: 

Source WebElement: het element dat wordt gesleept, dwz het bronelement 

xOffset: horizontale verplaatsingsverschuiving van de bestemmingslocatie 

yOffset: verticale verplaatsingsverschuiving van de bestemmingslocatie 

Intern neemt deze methode het bronwebelement en verplaatst het naar de bestemmingslocatie. Deze methode is handig als u een bronwebelement naar elke pixellocatie wilt verplaatsen.

Hieronder vindt u het codefragment voor de DragAndDropBy in Selenium:

public void dragAndDropByOps(By source, int xOffSet,int yOffSet) {probeer {WebElement sourceElement = driver.findElement(bron); Actions builder = nieuwe Actions (stuurprogramma); builder.dragAndDropBy(sourceElement,xOffSet,yOffSet).build().perform(); BASE_LOGGER.info("Succesvol uitgevoerde slepen en neerzetten actie "); } catch (Uitzondering e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Er is een fout opgetreden, dwz: " + exceptionData + " tijdens het uitvoeren van DragAndDrop "); } }

Bezoek hier de rest van de geavanceerde sets met Intermediate Selenium-webdriveropdrachten.

Geavanceerde Selenium WebDriver-opdrachten -Antwoorden:

Dubbelklik in selenium :

Om de bewerking te repliceren, dwz dubbelklikken in Selenium via de muis, moeten we dubbelklikken uitvoeren via Actions-klasse in Selenium en we kunnen het doen in de onderstaande benadering: 

public void doubleClick (door locator) { probeer { WebElement element = driver.findElement (locator); Acties acties = nieuwe acties (stuurprogramma); acties.doubleClick(element).perform(); BASE_LOGGER.info("Dubbelklik op het element uitgevoerd: " + locator); } catch (StaleElementReferenceException e) { BASE_LOGGER.error("Element is niet gekoppeld aan het paginadocument" + e.getCause().getMessage()); } catch (NoSuchElementException e) { BASE_LOGGER.error("Element" + locator + "is niet gevonden in DOM" + e.getCause().getMessage()); } catch (Uitzondering e) { BASE_LOGGER.error ("Element" + locator + " was niet klikbaar " + e.getCause().getMessage()); } }

Het bovenstaande codefragment is een methode die in feite een argument als Locator gebruikt, dwz het WebElement waarop de dubbelklik moet worden uitgevoerd.

Contextclick in selenium:

Om de contextklik- of rechterklikbewerking via de muis te repliceren, moeten we de contextklikmethode uitvoeren via de klasse Actions in Selenium en we kunnen het doen in de onderstaande benadering: 

public void rightClick (By locator) { probeer { WebElement element = driver.findElement (locator); Acties acties = nieuwe acties (stuurprogramma); acties.contextClick(element).perform(); BASE_LOGGER.info("De context uitgevoerd Klik op het element : " + locator); } catch (StaleElementReferenceException e) { BASE_LOGGER.error("Element is niet gekoppeld aan het paginadocument" + e.getCause().getMessage()); } catch (NoSuchElementException e) { BASE_LOGGER.error("Element" + locator + "is niet gevonden in DOM" + e.getCause().getMessage()); } catch (Uitzondering e) { BASE_LOGGER.error ("Element" + locator + " was niet klikbaar " + e.getCause().getMessage()); } }

Voor de gedetailleerde Advance Selenium webdriver-commando's, bezoek hier.. Ook om inzicht te krijgen in de Acties klasse in Selenium en zijn implementaties bezoek hier .

Kritieke veelgestelde vragen: 

Wat is manage () in Selenium?

driver.manage () geeft een referentie terug van de implementatie van WebDriver.Options Interface.Options-interface is een interface voor het beheren en afhandelen van acties in een browsermenu, zoals: 

Voor uitgebreide sets van Selenium interviewvragen -Kritische en geavanceerde sets bezoek hier.

Conclusie:

In dit gedeelte van de tutorial hebben we de Basic behandeld Selenium-webstuurprogramma commando's, Klik hier om de Intermediate en Advanced Selenium webdriver-opdrachten. Klik hier om Selenium van Scratch te leren.

Laat een bericht achter