71 onbeantwoorde kritische Selenium-interviewvragen

In deze tutorial met selenium-interviewvragen behandelen we alle kritische Selenium-interviewvragen, samen met geavanceerde Selenium Automation-framework-interviewvragen.Deze tutorial is onderverdeeld in drie segmenten:

Selenium Framework interviewvragen

Selenium interviewvragen vooraf

Intermediate selenium interviewvragen

NOTITIE : De focus van deze Selenium interview Vragen en antwoorden tutorial is om de meest kritische en complexe vragenlijst te bespreken, aangezien je misschien al op de hoogte bent van de basisvragenlijsten.

In eerste instantie beginnen we met Advance Selenium Framework-interviewvragen en -antwoorden en gaan dan verder met kritische / geavanceerde selenium-interviewvragen en -antwoorden. Tenslotte ronden we deze tutorial af met tussenliggende niveaus, zodat je je goed kunt voorbereiden.

Selenium sollicitatievragen
Selenium sollicitatievragen

Selenium Framework interviewvragen

Advance Selenium Interview Vragen

Intermediate selenium interviewvragen

Selenium Framework sollicitatievragen: 

Hoeveel populaire soorten Selenium-framework zijn er?

Er zijn vier verschillende soorten Selenium-raamwerken, namelijk: 

Hoeveel verschillende benaderingen zijn er om het Page Object Model-framework te ontwerpen?

Wat is Paginafabriek in selenium?

PageFactory is een klasse uit de Selenium-bibliotheek uit een pakket genaamd org.openqa.selenium.support dat helpt bij het ontwerpen van het Page Object Design-patroon in het Page Object Model-framework, dat weinig implementaties heeft, zoals:

Wat is het belangrijkste ontwerpverschil tussen klassiek pagina-objectmodel en aangepast pagina-objectmodel?

Elke webpagina zou dus één interface moeten hebben om locators op te slaan en 1 klasse voor de webbewerkingen op paginaniveau en hun beweringen over respect.

Wat is het ontwerpprincipe van het Page Object Model Framework?

Het ontwerpprincipe van het Page Object Model-framework is gebaseerd op principes of concepten, die zijn: 

Alle pagina-acties (verschillende bewerkingen van de webpagina-functionaliteit) bevinden zich dus in de respectieve paginaklassen.

Noem de belangrijkste verschillen tussen het Page Object Model en het Hybrid Page Object Model.

Het verschil tussen Page Object Model en Hybrid Page Object Model is dat het Hybrid Page Object Model is gebaseerd op Page Object Model Framework Design samen met de uitgebreide functies van het Data-Driven Framework en een breed scala aan Data Operations Utilities ondersteunt, zoals hieronder : 

Wat is de taalparser die wordt gebruikt in het Cucumber -BDD-framework?

De taalparser die in het Cucumber -BDD-framework wordt gebruikt, is Gherkin.

Wat is de augurken-taal?

Augurk is DSL (Domain Specific Language) en Engels-achtige taal, die zeer goed leesbaar en begrijpelijk is (dwz give (), when (), then (), etc.)

Wat bedoel je met gegeven () in augurk?

 De methode Given () stelt dat een bepaalde situatie of scenario wordt gegeven of vermeld.

 Wat bedoel je met when () in augurk?

When () betekent dat u bepaalde bewerkingen uitvoert.

Wat bedoel je met toen () in augurk?

then () wordt gebruikt als beweringen nadat de bewerkingen zijn uitgevoerd door gegeven (). when ().

Welke CI-tool gebruikt u als onderdeel van het framework?

We gebruiken Jenkins (voornamelijk) als een open-source CI-tool.

Welke buildtool gebruik je als onderdeel van het framework?

We gebruiken build-tools zoals Maven / Gradle / ant (het werd eerder gebruikt).

Wat is het belangrijkste verschil tussen Maven en Gradle?

Gradle is de geavanceerde versie van wat maven presteert, en daarnaast kunnen we ook taken maken (zoals de functie die beschikbaar was in ANT), zodat we op een hoog niveau kunnen overwegen: 

Gradle = >> Maven + Ant 

Als onderdeel van Selenium C # gebruiken we Gallio als een bouwtool. 

Wat is het Unit Test-framework dat we gebruiken als onderdeel van het Selenium Automation-framework?

We gebruiken voornamelijk TestNG / JUnit (JUnit wordt tegenwoordig minder gebruikt) als onderdeel van het unit-testraamwerk tijdens het bouwen van het automatiseringsraamwerk met Selenium. 

Als onderdeel van het Selenium C # -raamwerk gebruiken we NUnit / MbUnit als een unit-testraamwerk.

Welke aanpak kan in overweging worden genomen bij het ontwerpen van de rapportagetools als onderdeel van het Selenium-framework?

Bij het ontwerpen van het raamwerk kunnen we verschillende rapportagemethoden volgen:

Afgezien van deze open-source integratie van rapportagetools, kunnen we ook kiezen voor een aantal geavanceerde rapportagefuncties of een dashboard om te bouwen met de onderstaande technologieën en tools:

Hoe gebruik je ELK om het rapportagedashboard te bouwen met Selenium Framework:

Er is een basisprincipe van het basisontwerp dat wordt gebruikt om het automatiseringsdashboard te ontwerpen, namelijk: 

Hoe bouw je een HTML-rapport op maat?

U kunt gebruik maken van verschillende luisteraars en reportersinterfaces die door TestNg worden geleverd om de gebeurtenissen en hun respectievelijke gegevenssets op te nemen en HTML te maken met behulp van die gegevenssets en de HTML-tags in het rapportgebruik.

Wat zijn de uitdagingen waarmee u werd geconfronteerd bij het ontwikkelen van een raamwerk?

Er zijn verschillende uitdagingen die u kunt noemen, afhankelijk van uw ervaring tijdens het ontwikkelen van het framework, bijvoorbeeld: 

Noem alle Selenium-componenten die u in uw Selenium Framework hebt gebruikt?

U kunt vermelden afhankelijk van uw kader.

Wat is de stroom van uw automatiseringsraamwerk?

U kunt de uitvoeringsstroom van uw framework vermelden, afhankelijk van uw Framework-stroom en de tools die u hebt gebruikt; hieronder is een voorbeeld dat u kunt noemen:

CI (Jenkins) → Bouwtools (Maven /Gradle) → Unit Test Framework (TestNg) → TestNg.xml - >> TestClasses → BaseTest (Elke testklasse breidt de basisklasse uit als baseTest waar de @beforeClass / @ BeforeSuite @afterClass enz. Wordt afgesloten) -> TestMethods → PageClasses → Paginamethoden → WebUtilities ( herbruikbare klasse voor de WebAction-hulpprogramma's) - >> Reporting Utils 

Wat verstaat u onder datagedreven raamwerk en waar gebruiken we een datagedreven raamwerk?

Een gegevensgestuurd raamwerk is in feite een raamwerk dat wordt aangedreven door gegevens. Dat gezegd hebbende, waarin de applicatie of het type applicatie waar de Same Test-cases of -scenario's meerdere keren worden uitgevoerd met de verschillende datasets of de bron of Data erg groot is, zoals in het geval waarin we een verscheidenheid aan Gegevensbronnen daar gebruiken we datagedreven raamwerk. 

De verschillende gegevensbronnen kunnen zijn: 

Hoe leg je het seleniumautomatiseringskader uit in een interview?

 Er zijn verschillende benaderingen die u kunt gebruiken om het seleniumautomatiseringsraamwerk in een interview uit te leggen; de best mogelijke benadering zou de modulaire benadering kunnen zijn, namelijk de uitleg opsplitsen in verschillende afzonderlijke modules, zoals:

Laten we het in detail bespreken: 

Type raamwerk en belangrijkste en unieke kenmerken van het raamwerk:

U moet het type framework vermelden, zoals Hybrid Framework, pagina-objectmodelraamwerk, hybride Page Object Model-raamwerk, enz. 

U moet de unieke kenmerken van het framework vermelden, zoals bijvoorbeeld:

Tools en technologieën die worden gebruikt in het Selenium-framework:

U kunt de tools en technologieën vermelden die zijn gebruikt tijdens het ontwikkelen van het framework, zoals:

De stroom van de uitvoering van het Selenium Framework:

U kunt de stroom van de uitvoering van het framework noemen, dat wil zeggen, hoe activeert u de testsuites en hoe deze stroomt naar de testgevallen / methoden en tot de Framework Utils zoals webutils, data utils, etc. U kunt verwijzen naar de bovenstaande vraag waar we bespraken hoe we de stroom van de uitvoering van het Selenium-raamwerk konden verklaren.

Verschillende kritieke scenario's die door uw framework worden afgehandeld:

In deze module kunt u de kritieke functies bespreken die zijn geautomatiseerd als onderdeel van uw applicatie-automatisering met uw framework. Er zijn veel use-cases of features die u hier kunt noemen, zoals: 

Hoe logboekscenario's ontwerpen in het Selenium-framework?

U kunt log4j gebruiken voor logboekregistratie, of u kunt real-time logging en debugging dashboardimplementatie gebruiken met Graylog, dat in feite ElasticSearch in de backend gebruikt voor real-time logging en debugging details.

Wat zijn de ontwerppatronen die u hebt gebruikt bij het ontwerpen van het raamwerk?

U kunt verschillende ontwerppatronen gebruiken volgens de behoefte en het ontwerp van het automatiseringsraamwerk, zoals:

Kritische of geavanceerde selenium-interviewvragen:

Op hoeveel manieren kunt u uw automatiseringsscript parallel uitvoeren?

Er zijn meerdere manieren en benaderingen waarmee u uw testscripts parallel kunt uitvoeren, zoals: 

Maven:

Met behulp van trefzekere plug-in: 

5

 waar

Hier staat de vorktelling voor het aantal parallelle threads.

Grijpen: 

tasks.withType(Test) {
        maxParallelForks = Runtime.runtime.availableProcessors()
    }

Wat is het verschil tussen setSpeed ​​() en sleep () -methoden?

setSpeed ​​() methode in Selenium stelt in feite de snelheid van de uitvoering van elke actie / commando in. 

Laten we dus zeggen dat als u Speed ​​("2000") instelt, elke regel van uitvoering met 2000 milliseconden vertraagd zal zijn. 

Aan de andere kant zal Thread.sleep () een vertraging van 3000 milliseconden introduceren (het zal de thread opschorten voor de specifieke bewerking). 

Daarom wordt sleep () toegepast op 1 bewerking; aan de andere kant introduceert setSpeed ​​() de vertraging voor elke bewerking en dus de snelheid van de uitvoering.  

Hoe verifieer ik de aanwezigheid van een ScrollBar met Selenium? 

Om de horizontale schuifbalk in een webpagina met Selenium te verifiëren, gebruiken we Javascriptexecutor op de onderstaande manier: 

JavascriptExecutor javascriptExecutor = (JavascriptExecutor) driver;
Boolean presenceOfHorizontalScroll = (Boolean) javascriptExecutor.executeScript("return document.documentElement.scrollWidth>document.documentElement.clientWidth;");

De verticale schuifbalk in webpagina verifiëren met Selenium webdriver we moeten ook Javascriptexecutor gebruiken

JavascriptExecutor javascriptExecutor = (JavascriptExecutor) driver;
Boolean presenceOfVerticalScroll  = (Boolean) javascriptExecutor.executeScript("return document.documentElement.scrollHeight>document.documentElement.clientHeight;");

De code schrijven om verborgen webelementen in selenium webdriver af te handelen?

WebElement element=driver.findElement(By.id("id_of_Element"));
JavascriptExecutor jsExecutor = (JavascriptExecutor)driver;
jsExecutor.executeScript("arguments[0].click();", element);

Noem verschillende benaderingen om een ​​venstergebaseerde pop-up af te handelen met behulp van de Selenium-webdriver?

U kunt de onderstaande benaderingen gebruiken om op Windows gebaseerde applicaties zoals Window Pop-up te behandelen: 

Wat is de bovenliggende interface van WebDriver?

Zoekcontext

Noem de belangrijkste verschillen tussen POI en JXL Jars?

POI ondersteunt voorwaardelijke opmaak, RTF-opmaak of xlsx-indeling, maar aan de andere kant ondersteunt JXL geen van deze functies.

POI-bibliotheek wordt onderhouden en bijgewerkt in vergelijking met JXL.

Hoe ga je om met je netwerklatenties met Selenium?

We kunnen het volgende gebruiken om netwerklatentie af te handelen in Selenium: 

Laadtijd van de.beheren.pagina's

Wat zijn de benaderingen die u zou volgen om Ajax-inhoudstests met Selenium WebDriver uit te voeren?

AJAX is in feite asynchroon Javascript en XML. Alle communicatie van de op AJAX gebaseerde applicatie is gebaseerd op asynchrone oproepen, 

waarmee elke gebeurtenis kan worden uitgevoerd zonder de webpagina te vernieuwen. Elke bewerking kan onafhankelijk van andere gebeurtenissen worden uitgevoerd.

Wat zijn de uitdagingen tijdens het werken met AJAX inbellen? Selenium webstuurprogramma?

Om met de AJAX-applicatie te werken, moet u mogelijk wacht gebruiken voor de bovengenoemde gebruiksscenario's: 

Wat is de aanpak om met Proxy in Selenium Webdriver te werken?

Er zijn twee verschillende benaderingen die u met proxy kunt afhandelen in Selenium Webdriver: 

Proxy proxy=new Proxy();
proxy.setHttpProxy("localhost:8889");
DesiredCapabilities capabilities=new DesiredCapabilities();
capabilities.setCapability(CapabilityType.PROXY, proxy);
WebDriver driver=new FirefoxDriver(capabilities);

Noem de manieren om synchronisatie te bereiken in WebDriver?

We kunnen synchronisatie in Selenium webdriver afhandelen door een ander wachtmechanisme te gebruiken: 

Noem de belangrijkste verschillen tussen TestNg @BeforeTest en @BeforeMethod? 

In TestNg heeft @BeforeTest en @BeoreMethod verschillende aspecten, zijn:

Maak een lijst van de verschillende soorten WebDriver API's die aanwezig zijn in Selenium?

Op hoeveel manieren kun je een executie zonder hoofd bereiken met Selenium?

We kunnen de onderstaande stuurprogramma's gebruiken om headless-automatisering met Selenium te bereiken: 

Wat is vloeiend wachten in Selenium WebDriver?

Met FluentWait kunt u een maximale hoeveelheid tijd (laten we zeggen 3 minuten) instellen om te wachten om aan een specifieke voorwaarde te voldoen, en gedurende die tijd zult u continu pollen of controleren met een bepaalde frequentie (een zeer kleine tijdseenheid, laten we zeggen 3 sec) om te controleren.

Als aan de voorwaarde is voldaan, wordt true geretourneerd en als dat niet het geval is, wordt een uitzondering "ElementNotVisibleException" gegenereerd.

De syntaxis van fluentwait in Selenium is:

Wait fluentWait = new FluentWait(driver).withTimeout(100, TimeUnit.SECONDS)
  .pollingevery(2, TimeUnit.SECONDS)
  .ignoring(ElementNotVisibleException.class);

Vertel ons enkele Selenium-uitzonderingen die u bent tegengekomen tijdens het werken met 'Selenium WebDriver?

Hoe verwijder je cookies in Selenium?

De opdracht om de cookies in Selenium te verwijderen is: 

driver.manage().deleteAllCookies();

Leg de aanpak uit: hoe lees je de javascript-variabele in selenium webdriver?

We hebben JavascriptExecutor nodig om dit te kunnen doen. 

JavascriptExecutor jsExecutor = (JavascriptExecutor) webdriver;
String jsVariable = (String.valueOf(jsExecutor.executeScript("return document.title")));

Hoe de browser in en uit te zoomen in Selenium?

We kunnen in- en uitzoomen uitvoeren in Selenium door twee verschillende benaderingen te gebruiken, zoals: 

Zoom in met Robotklasse in selenium

Robot robotInstance = new Robot();
//Zoom in

robotInstance.keyPress(KeyEvent.VK_CONTROL);
robotInstance.keyPress(KeyEvent.VK_ADD);
robotInstance.keyRelease(KeyEvent.VK_ADD);
robotInstance.keyRelease(KeyEvent.VK_CONTROL);

Zoom uit met Robotklasse in selenium


Robot robotInstance = new Robot();
robotInstance.keyPress(KeyEvent.VK_CONTROL);
robotInstance.keyPress(KeyEvent.VK_SUBTRACT);
robotInstance.keyRelease(KeyEvent.VK_SUBTRACT);
robotInstance.keyRelease(KeyEvent.VK_CONTROL);

Zoom in met Keys class in selenium

driver.findElement(By.tagName("html")).sendKeys(Keys.chord(Keys.CONTROL,Keys.ADD));

Zoom uit met Robotklasse in selenium

driver.findElement(By.tagName("html")).sendKeys(Keys.chord(Keys.CONTROL,Keys.SUBTRACT));

Hoe maak je een veld in selenium vrij zonder een clear () methode te gebruiken?

We kunnen elk veld leegmaken zonder de clear () methode te gebruiken in de onderstaande benadering: 

We kunnen de Keys-klasse in Selenium gebruiken om hetzelfde te bereiken: 

WebElement element = driver.findElement(By.id("id_of_Element"));
element.sendKeys(Keys.chord(Keys.CONTROL, "a"));
element.sendKeys(Keys.DELETE);

Hoe de mislukte testcases in selenium opnieuw uitvoeren?

We kunnen de mislukte testcases in Selenium opnieuw uitvoeren in de onderstaande twee benaderingen:

Met automatisch gegenereerde TestNG-failed.xml:

Na de testuitvoering (uitgevoerd vanaf testng.xml), genereert TestNG automatisch TestNG-failed.xml; u kunt dezelfde XML opnieuw uitvoeren om ALLEEN de mislukte tests uit te voeren.

door de implementatie van IRetryAnalyzer-interface van testNg :

Door de interface IRetryAnalyzer te implementeren, kunnen we de mislukte testgevallen automatisch opnieuw uitvoeren met TestNg:


If you implement the IRetryAnalyzer you can auto rerun  failed test with TestNg :

public class Retry implements IRetryAnalyzer {
   int counter = 1;
   int retryMaxLimit = 3;
   public boolean retry(ITestResult result) {
       if (counter < retryMaxLimit) {
           counter++;
           return true;
       }
       return false;
   }
}

Hoe element in Selenium WebDriver te markeren?

We kunnen JavascriptExecutor gebruiken om de kleur van het Webelement in te stellen door het element te noemen.


WebElement element = driver.findElement(By.xpath("id_of_the_element"));
JavascriptExecutor jsExecutor = (JavascriptExecutor) driver;
jsExecutor.executeScript("arguments[0].setAttribute('style', 'background: red; border: 2px solid red;');", element);

Hoe dubbelklikken in selenium?

We kunnen de Acties klasse in Selenium om de DoubleClick-bewerkingen op de onderstaande manier uit te voeren. De onderstaande methode gebruikt een argument waarop u DoubleClick moet uitvoeren.

public void doubleClick(By locator) {
\t\ttry {
\t\t\tWebElement element = driver.findElement(locator);
\t\t\tActions actions = new Actions(driver).doubleClick(element);
\t\t\tBASE_LOGGER.info("Performed the double Click on the Element  : " + locator);
\t\t} catch (StaleElementReferenceException e) {
\t\t\tBASE_LOGGER.error("Element is not attached to the page document " + e.getCause().getMessage());
\t\t} catch (NoSuchElementException e) {
\t\t\tBASE_LOGGER.error("Element " + locator + " was not found in DOM " + e.getCause().getMessage());
\t\t} catch (Exception e) {
\t\t\tBASE_LOGGER.error("Element " + locator + " was not clickable " + e.getCause().getMessage());
\t\t}
\t}

Hoe scrol je in selenium?

We hebben Javascript nodig om het scrollen uit te voeren, en de onderstaande methode biedt een geavanceerde benadering om in het element te scrollen totdat het element zichtbaar is, wat in beeld scrollen is: 

public void scrollIntoView(By locator) {

  try {
     JavascriptExecutor executor = (JavascriptExecutor) driver;
     WebElement element = driver.findElement(locator);
     executor.executeScript("arguments[0].scrollIntoView(true);", element);
     BASE_LOGGER
           .info("scrollIntoView operation has been performed for the locator : " + String.valueOf(element));
  } catch (Exception e) {
     String exceptionData = e.getCause().getMessage();
     BASE_LOGGER.error("Error encountered i.e : " + exceptionData
           + " while performing scrollIntoView on the element : " + locator);

  }

}

Hoe krijg ik alle links op de pagina in selenium?

We kunnen By.tagName ("a") gebruiken om alle links op te halen die beschikbaar zijn op de pagina, aangezien een link verwijst naar de tag die wordt genoemd als een; de methode gaat op de onderstaande manier: 

public List<WebElement> getAllLinks() {

  try {
     List<WebElement> allLinks = driver.findElements(By.tagName("a"));
     int numberOfLinks = allLinks.size();
     BASE_LOGGER.info("Number of Links in the Current Page is : " + numberOfLinks);
     BASE_LOGGER.info("GetAllLinks operation has been performed for the Current Page : ");
     return allLinks;
  } catch (Exception e) {
     String exceptionData = e.getCause().getMessage();
     BASE_LOGGER.error("Error encountered i.e : " + exceptionData
           + " while performing GetAllLinks for the Current Page :");
     return null;
  }

}

Hoe vind ik het aantal iframes op een pagina in Selenium?

We kunnen de onderstaande methode gebruiken om het aantal iframes op een pagina in Selenium te vinden:

public int numberOfIframesInPage() {
  try {
     JavascriptExecutor exe = (JavascriptExecutor) driver;
     Integer numberOfIFrames = Integer.parseInt(exe.executeScript("return window.length").toString());
     BASE_LOGGER.info("Number of IFrames in the current Window are : " + numberOfIFrames);
     return numberOfIFrames;

  } catch (Exception e) {
     BASE_LOGGER
           .error("Exception occurred in Finding numberOfIframesInPage with : " + e.getCause().getMessage());
     return 0;
  }

}

Hoe overschakelen naar het standaardframe in selenium webdriver?

We kunnen de methode switchTo (). DefaultContent () gebruiken om over te schakelen naar het standaardframe in Selenium Webdriver: 

public void switchToDefaultFrame() {
  try {
     driver.switchTo().defaultContent();
     BASE_LOGGER.info("Switched to Default Content ");
  } catch (Exception e) {
     BASE_LOGGER.error("Exception Occurred while switching to default Content ");
  }
}

Hoe tabbladen in selenium te behandelen?

We kunnen een lijst gebruiken om alle beschikbare tabbladen op te slaan en driver.getWindowHandles () gebruiken om de tabbladen op te slaan, en eenmaal hierna kunnen we tabbladen een voor een behandelen in de onderstaande benadering, zoals: 

public void switchToTab(int indexOfTab) {

  try {

     ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());
     driver.switchTo().window(tabs.get(indexOfTab));
     BASE_LOGGER.info("Successfully switched to tab with tab index as : " + indexOfTab);
  } catch (Exception e) {
     String exceptionData = e.getCause().getMessage();
     BASE_LOGGER.error(
           "Unable to Switch to Tab for :" + indexOfTab + " i.e failed with exception as : " + exceptionData);

  }



}

Intermediate selenium interviewvragen

Is WebDriver een klasse of een interface?

Webdriver is een interface waarin alle stuurprogrammaklassen, zoals ChromeDriver en FirefoxDriver, een object maken en verwijzen naar de referentie van de Webdriver-interface.

Welke is sneller, XPath of CSS?

CSS is sneller dan XPath. 

Waarom is CSS sneller dan XPath?

Elke browsermotor is anders, en daarom zijn de ontledingsstrategie en de engine-implementatie anders via de geschreven XPath. Dat is de reden waarom het parseren van XPath soms inconsistent wordt; IE heeft bijvoorbeeld geen eigen engine-implementatie om XPATH te ontleden; daarom injecteert Selenium zijn eigen native XPath-engine om XPATH in IE te ontleden. 

Wat zijn verhoogde bevoorrechte browsers?

Wanneer de browsers worden geopend met een aantal vooraf gedefinieerde instellingen (bijvoorbeeld met een speciale geprivilegieerde modus) zoals met bepaalde profielen of certificaten, dan worden dit verhoogde privileged-browsersessies genoemd. 

We kunnen start een browser met Selenium met Profilering of stel certificaten in voor dezelfde doeleinden.

Wat is headless browser Selenium en hoe voeren we headless browsertests uit?

  Een headless browser is een simulatieprogramma voor de browser waarin we geen gebruikersinterface hebben, maar we kunnen nog steeds een applicatie onder test uitvoeren in onzichtbare modus 

 en voer de gewenste webbewerking op de achtergrond uit.

 We gebruiken HeadLess-browserstuurprogramma's zoals HTMLUNIT-stuurprogramma of phantomJS-stuurprogramma om headless browsertests uit te voeren.

Selenium vs. poppenspeler? 

Er zijn verschillende verschillen tussen Selenium en poppenspeler (wat een nieuwe tool is vergeleken met Selenium en ontwikkeld door Google Chrome DEV)

We zullen hier de vergelijking tussen Selenium VS Puppeteer in verschillende aspecten bespreken: 

HardAssert versus SoftAssert?

Beide assertionbenaderingen zijn van TestNg, en elk van hen heeft zijn eigen voor- en nadelen

 Als u zich onder de omstandigheden bevindt waarin u een bewering moet hebben die voor de hand ligt, dwz zonder die stap hebben de resterende stappen van het script geen zin om te worden uitgevoerd, dan kunt u Hard Assert daar plaatsen.

 Hoe stel ik de venstergrootte in selenium in?

We kunnen een object van de Dimension-klasse maken en dat object doorgeven aan de methode setSize (): 

Dimension dimension = new Dimension(480,700);
driver.manage().window().setSize(dimension);

Wat is het versiebeheersysteem dat u gebruikt tijdens het werken met Selenium?

U kunt elke VCS die u gebruikt vermelden, zoals Github, SVN, enz.

Hoe een git repo klonen?

We kunnen de git-repo klonen met behulp van:

Git clone repo

Hoe haal ik de Git-opslagplaatscode op?

Git pull remoteRepoURL branchName

Hoe de code naar git repo pushen?

Git push remoteURL branchName

Hoe stel ik de afstandsbediening in? 

git remote add ProvideARemoteName remoetURL

Hoe controleer ik de beschikbare afstandsbedieningen?

Git remote -v 

Hoe controleer ik in welke externe URL u zich momenteel bevindt? 

git config --get remote.origin.url

Hoe kunt u uw framework integreren met Jenkins?

Als onderdeel van het Selenium Automation-framework gebruiken we buildtools (zoals Maven / Gradle) en kunnen we een Jenkins-taak maken en de Maven / Gradle verbinden door de configuratie te voorzien van VCS (dwz Github, enz.)

Wat zijn de nadelen van Sikuli?

Hoe databasetests uitvoeren met selenium?

We kunnen databasetests uitvoeren met selenium in de onderstaande modulaire benadering: 

Hier is het onderstaande codefragment voor de bovenstaande stappen: 

Selenium Database-verbinding instellen met JAVA JDBC en creëert een DB-instructie: 

   static Connection connection = null;
   private static Statement statement;
   public static String DataBase_URL = "DB_URL";
   public static String DataBase_USER = "DB_UserName";
   public static String DataBase_PASSWORD = "DB_password";



   /* This method Creates the connection with Java JDBC and return it to the Test method to use along with statement 
   */
@BeforeTest
   public void setUp() throws Exception {
       try{

           String dbClass = "com.mysql.cj.jdbc.Driver";
           Class.forName(dbClass).newInstance();
           Connection con = DriverManager.getConnection(DataBase_URL, DataBase_USER, DataBase_PASSWORD);
           statement = con.createStatement();
       }
       catch (Exception e)
       {
           e.getCause().getMessage().toString();

       }


   }

Gebruik de instructie om de database met SQL te doorzoeken: 

@Test
public void test() {
   try{
       String queryData = "select * from TableName";

       ResultSet res = statement.executeQuery(queryData);
       while (res.next())
       {
           System.out.print(res.getString(1));
           System.out.print(" " + res.getString(2));
       }
   }
   catch(Exception e)
   {
       e.getMessage();
   }
}

De gegevensverbinding verbreken: 

Deze stap is erg belangrijk; anders kunnen we uiteindelijk meerdere databaseverbindingen maken zonder ze na gebruik te sluiten, wat verschillende problemen kan veroorzaken. 

Hier is het codefragment voor hetzelfde: 

@AfterTest
public void tearDown() throws Exception {

   if (connection != null) {
       connection.close();
   }
}

Hoe de achtergrondkleur en kleur van een WebElement verifiëren met Selenium? 

We moeten een methode gebruiken met de naam getCssValue ("kleur") voor het ophalen van de kleur van een webelement en getCssValue ("achtergrondkleur") om de achtergrondkleur van een webelement te trekken.

Hier is het codefragment: 

String colour  = driver.findElement(By.xpath("XPATH_of_the_Element")).getCssValue("color");

String backgroundColour = driver.findElement(By.xpath("XPATH_of_the_Element")).getCssValue("background-color");

Hoe kan ik de lettergrootte van een WebElement verifiëren met Selenium webdriver? 

We kunnen de methode getCssValue ("font-size") gebruiken

String fontSize  = driver.findElement(By.xpath("XPATH_of_the_Element")).getCssValue("font-size");

Hoe verifieer ik het lettertype van een webelement in Selenium Webdriver? 

String fontSize = driver.findElement(By.xpath("XPATH_of_the_Element")).getCssValue("font-type");

Hoe tooltip-tekst in selenium te krijgen?

Tooltip-tekst van een WebElement krijgen is niets anders dan het title-attribuut van het Webelement op de onderstaande manier verkrijgen: 

public String getToolTipData(By locator){

   WebElement element=driver.findElement(locator);
   return element.getAttribute("title");
}

Wat is StaleElementException? 

Verouderd element betekent dat wanneer een webelement niet langer is gekoppeld aan de DOM / webpagina die eerder aanwezig was. In dat geval gooit Selenium een ​​staleelementuitzondering.

Dit kan om verschillende redenen gebeuren, zoals door AJAX- of JavaScript-aanroepen die de status veranderen

van het element maakt het niet beschikbaar / losgekoppeld van DOM.  

Conclusie : Hiermee zijn we klaar met de sets met kritische Selenium-interviewvragen over Selenium Framework-interviewvragen. Lees hier door voor meer informatie concepten van Selenium om de architectuur van Selenium te begrijpen.

Laat een bericht achter