71 unbeantwortete kritische Selenium-Interviewfragen

In diesem Tutorial mit Fragen zu Selen-Interviews werden alle kritischen Fragen zu Selen-Interviews sowie Fragen zum erweiterten Selenium Automation-Framework behandelt. Dieses Tutorial ist in drei Segmente unterteilt:

Fragen zum Selenium Framework-Interview

Fragen zum Selenium-Vorstellungsgespräch

Intermediate Selenium Interview Fragen

HINWEIS : Der Schwerpunkt dieses Tutorials zu Fragen und Antworten zum Selenium-Interview liegt auf der Erörterung des kritischsten und komplexesten Fragebogens, da Ihnen möglicherweise bereits die grundlegenden Fragebögen bekannt sind.

Zunächst beginnen wir mit den Fragen und Antworten zum Advance Selenium Framework-Interview und gehen dann zu den kritischen/fortgeschrittenen Selenium-Interviewfragen und -Antworten über. Zum Abschluss beenden wir dieses Tutorial mit mittleren Niveaustufen, damit Sie sich gut vorbereiten können.

Fragen im Vorstellungsgespräch bei Selenium
Fragen im Vorstellungsgespräch bei Selenium

Fragen zum Selenium Framework-Interview

Fragen zum Selenium-Vorstellungsgespräch

Intermediate Selenium Interview Fragen

Fragen zum Selenium Framework-Interview: 

Wie viele beliebte Arten von Selen-Gerüsten gibt es?

Es gibt vier verschiedene Arten von Selengerüsten: 

Wie viele verschiedene Ansätze gibt es, um das Page Object Model-Framework zu entwerfen?

Was ist Page Factory in Selen?

PageFactory ist eine Klasse aus der Selenium-Bibliothek aus einem Paket namens org.openqa.selenium.support, mit dessen Hilfe das Muster für das Seitenobjektdesign im Framework für das Seitenobjektmodell entworfen werden kann, das nur wenige Implementierungen enthält, z.

Was ist der wesentliche Designunterschied zwischen dem klassischen Seitenobjektmodell und dem benutzerdefinierten Seitenobjektmodell?

Daher sollte jede Webseite eine Schnittstelle zum Speichern von Locators und eine Klasse für die Weboperationen auf Seitenebene und deren Respektansprüche haben.

Was ist das Designprinzip des Page Object Model Framework?

Das Designprinzip des Page Object Model-Frameworks basiert auf Prinzipien oder Konzepten, die: 

Alle Seitenaktionen (verschiedene Operationen der Webseitenfunktionalität) befinden sich also in den jeweiligen Seitenklassen.

Erwähnen Sie die Hauptunterschiede zwischen dem Seitenobjektmodell und dem hybriden Seitenobjektmodell?

Der Unterschied zwischen dem Seitenobjektmodell und dem hybriden Seitenobjektmodell besteht darin, dass das hybride Seitenobjektmodell auf dem Framework-Design des Seitenobjektmodells zusammen mit den umfangreichen Funktionen des datengesteuerten Frameworks basiert und eine Vielzahl der Dienstprogramme für Datenoperationen wie die folgenden unterstützt :: 

Welche Sprache verwendet Parser im Cucumber-BDD-Framework?

Der im Cucumber-BDD-Framework verwendete Sprachparser ist Gherkin.

Was ist die Gurkensprache?

Gherkin ist eine DSL (Domain Specific Language) und eine englischähnliche Sprache, die sehr gut lesbar und verständlich ist (dh give (), when (), then () usw.)

Was meinst du mit Given () in Gherkin?

 Die Methode Given () gibt an, dass eine Situation oder ein Szenario angegeben oder angegeben ist.

 Was meinst du mit when () in Gherkin?

When () bedeutet, wenn Sie einige Operationen ausführen.

Was meinst du bis dahin () in Gurke?

then () wird als Zusicherungen verwendet, nachdem die Operationen mit Given () ausgeführt wurden. when ().

Welches CI-Tool verwenden Sie als Teil des Frameworks?

Wir verwenden Jenkins (hauptsächlich) als Open-Source-CI-Tool.

Welches Build-Tool verwenden Sie als Teil des Frameworks?

Wir verwenden Build-Tools wie Maven / Gradle / Ant (es wurde zuvor verwendet).

Was ist der Hauptunterschied zwischen Maven und Gradle?

Gradle ist die erweiterte Version der Leistung von Maven. Außerdem können wir Aufgaben erstellen (wie die in ANT verfügbare Funktion), sodass wir Folgendes berücksichtigen können: 

Gradle = >> Maven + Ant 

Als Teil von Selenium C # verwenden wir Gallio als Build-Tool. 

Was ist das Unit Test Framework, das wir als Teil des Selenium Automation Frameworks verwenden?

Wir verwenden hauptsächlich TestNG / JUnit (JUnit wird heutzutage weniger verwendet) als Teil des Unit-Test-Frameworks, während wir das Automation-Framework mit Selenium erstellen. 

Als Teil des Selenium C # -Frameworks verwenden wir NUnit / MbUnit als Unit-Test-Framework.

Welcher Ansatz kann bei der Gestaltung der Berichterstellungstools als Teil des Selenium-Frameworks berücksichtigt werden?

Es gibt verschiedene Berichtsansätze, die wir bei der Gestaltung des Frameworks verfolgen könnten:

Abgesehen von der Integration dieser Open-Source-Berichterstellungstools können wir uns auch für einige erweiterte Berichtsfunktionen oder ein Dashboard entscheiden, die mit den folgenden Technologien und Tools erstellt werden:

Wie erstellen Sie mit ELK das Berichts-Dashboard mit Selenium Framework:

Es gibt ein grundlegendes Prinzip für das Basisdesign, das zum Entwerfen des Automatisierungs-Dashboards verwendet wird: 

Wie erstellen Sie einen HTML-benutzerdefinierten Bericht?

Sie können verschiedene von TestNg bereitgestellte Listener- und Reporter-Schnittstellen verwenden, um die Ereignisse und ihre jeweiligen Datensätze aufzuzeichnen und HTML zu erstellen, indem Sie diese Datensätze und die HTML-Tags in den Berichts-Utils verwenden.

Vor welchen Herausforderungen standen Sie bei der Entwicklung eines Frameworks?

Es gibt verschiedene Herausforderungen, die Sie je nach Erfahrung bei der Entwicklung des Frameworks erwähnen können, zum Beispiel: 

Erwähnen Sie, welche Selenium-Komponenten Sie in Ihrem Selenium-Framework verwendet haben?

Sie können abhängig von Ihrem Framework erwähnen.

Wie läuft Ihr Automatisierungsframework ab?

Sie können den Ausführungsfluss Ihres Frameworks in Abhängigkeit von Ihrem Framework-Ablauf und den von Ihnen verwendeten Tools erwähnen. Unten finden Sie ein Beispiel, das Sie erwähnen können:

CI (Jenkins) → Build Tools (Maven /Gradle) → Unit Test Framework (TestNg) → TestNg.xml - >> TestClasses → BaseTest (Jede Testklasse erweitert die Basisklasse als baseTest, wenn die @beforeClass / @ BeforeSuite @afterClass usw. beendet wird) -> TestMethods → PageClasses → Seitenmethoden → WebUtilities ( wiederverwendbare Klasse für die WebAction-Dienstprogramme) - >> Reporting Utils 

Was verstehen Sie unter datengesteuertem Framework und wo verwenden wir ein datengesteuertes Framework?

Ein datengesteuertes Framework ist im Grunde ein Framework, das von Daten gesteuert wird. Allerdings ist die Anwendung oder der Typ der Anwendung, in der dieselben Testfälle oder -szenarien mehrmals mit den verschiedenen Datensätzen oder der Quelle oder den Daten ausgeführt werden, sehr umfangreich, wie in dem Fall, in dem wir eine Vielzahl von Interaktionen durchführen müssen Datenquellen dort verwenden wir datengesteuertes Framework. 

Die verschiedenen Datenquellen können sein: 

Wie erklärt man das Selen-Automatisierungs-Framework in einem Interview?

 Es gibt verschiedene Ansätze, um das Selenautomatisierungs-Framework in einem Interview zu erläutern. Der bestmögliche Ansatz könnte der modulare Ansatz sein, bei dem die Erklärung in verschiedene separate Module unterteilt wird, z.

Lassen Sie uns im Detail diskutieren: 

Art des Frameworks und des Schlüssels sowie einzigartige Funktionen des Frameworks:

Sie müssen den Typ des Frameworks angeben, z. B. Hybrid Framework, Seitenobjektmodell-Framework, Hybrid-Seitenobjektmodell-Framework usw. 

Sie müssen die einzigartigen Funktionen des Frameworks erwähnen, wie zum Beispiel:

Im Selenium-Framework verwendete Tools und Technologien:

Sie können die Tools und Technologien erwähnen, die bei der Entwicklung des Frameworks verwendet wurden, z.

Der Ablauf der Ausführung des Selenium Frameworks:

Sie können den Ablauf der Framework-Ausführung erwähnen, dh wie Sie die Testsuiten auslösen und wie er zu den Testfällen / -methoden und bis zu den Framework-Dienstprogrammen wie Webutils, Daten-Utils usw. fließt. Sie können sich auf die obige Frage beziehen Hier diskutierten wir, wie der Ablauf der Ausführung des Selenium-Frameworks erklärt werden kann.

Verschiedene kritische Szenarien, die von Ihrem Framework behandelt werden:

In diesem Modul können Sie die kritischen Funktionen, die im Rahmen Ihrer Anwendungsautomatisierung automatisiert wurden, mit Ihrem Framework diskutieren. Es gibt viele Anwendungsfälle oder Funktionen, die Sie hier erwähnen können, z. 

Wie werden Protokollierungsszenarien im Selenium-Framework entworfen?

Sie können log4j für die Protokollierung verwenden oder die Echtzeit-Protokollierungs- und Debugging-Dashboard-Implementierung mit Graylog verwenden, bei der ElasticSearch im Backend für Echtzeit-Protokollierungs- und Debugging-Details verwendet wird.

Welche Entwurfsmuster haben Sie beim Entwerfen des Frameworks verwendet?

Sie können je nach Bedarf und Design des Automatisierungsframeworks verschiedene Entwurfsmuster verwenden, z.

Fragen zum kritischen oder fortgeschrittenen Selen-Interview:

Auf wie viele Arten können Sie Ihr Automatisierungsskript parallel ausführen?

Es gibt mehrere Möglichkeiten und Ansätze, mit denen Sie Ihre Testskripte parallel ausführen können, z. 

Maven:

Verwenden des todsicheren Plugins: 

5

 wahr

Hier gibt die Anzahl der Gabeln die Anzahl der parallelen Threads an.

Gradle: 

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

Was ist der Unterschied zwischen den Methoden setSpeed ​​() und sleep ()?

Die Methode setSpeed ​​() in Selenium legt im Wesentlichen die Geschwindigkeit der Ausführung jeder einzelnen Aktion / jedes einzelnen Befehls fest. 

Nehmen wir also an, wenn Sie Speed ​​(„2000“) einstellen, wird jede Ausführungszeile um 2000 Millisekunden verzögert. 

Auf der anderen Seite führt Thread.sleep () eine Verzögerung von 3000 Millisekunden ein (der Thread wird für die jeweilige Operation angehalten). 

Daher wird sleep () auf 1 Operation angewendet; Auf der anderen Seite führt setSpeed ​​() die Verzögerung für jede einzelne Operation ein und legt somit die Geschwindigkeit der Ausführung fest.  

Wie überprüfe ich das Vorhandensein einer ScrollBar mit Selen? 

Um die horizontale Bildlaufleiste auf einer Webseite mit Selen zu überprüfen, verwenden wir Javascriptexecutor auf folgende Weise: 

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

Um die vertikale Bildlaufleiste in der Webseite zu überprüfen, verwenden Sie Selenium Webdriver müssen wir auch Javascriptexecutor verwenden

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

Schreiben Sie den Code, um versteckte Webelemente in Selenium Webdriver zu behandeln?

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

Erwähnen Sie verschiedene Ansätze zur Handhabung eines fensterbasierten Popups mit dem Selenium-Webtreiber?

Sie können die folgenden Ansätze verwenden, um fensterbasierte Anwendungen wie das Fenster-Popup zu verarbeiten: 

Was ist die übergeordnete Oberfläche von WebDriver?

Suchkontext

Erwähnen Sie die Hauptunterschiede zwischen POI- und JXL-Gläsern?

POI unterstützt die bedingte Formatierung, die Rich-Text-Formatierung oder das XLSX-Format. JXL unterstützt jedoch keine dieser Funktionen.

Die POI-Bibliothek wird im Vergleich zu JXL verwaltet und aktualisiert.

Wie gehen Sie mit Selenium mit Ihren Netzwerklatenzen um?

Wir können Folgendes verwenden, um die Netzwerklatenz in Selenium zu handhaben: 

Treiber.manage.pageloadingtime

Mit welchen Ansätzen würden Sie Ajax-Inhaltstests mit Selenium WebDriver durchführen?

AJAX ist im Grunde Asynchronous Javascript And XML. Die gesamte Kommunikation der AJAX-basierten Anwendung basiert auf asynchronen Aufrufen. 

Damit kann jedes Ereignis ausgeführt werden, ohne die Webseite zu aktualisieren. Jede Operation kann unabhängig von anderen Ereignissen ausgeführt werden.

Was sind die Herausforderungen bei der Arbeit mit AJAX-Anrufen? Selenium WebDriver?

Um mit der AJAX-Anwendung arbeiten zu können, müssen Sie möglicherweise Wartezeiten für die oben genannten Anwendungsfälle verwenden: 

Wie wird mit Proxy in Selenium Webdriver gearbeitet?

Es gibt zwei verschiedene Ansätze, mit denen Sie Proxy in Selenium Webdriver verarbeiten können: 

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

Erwähnen Sie die Möglichkeiten zur Synchronisierung in WebDriver?

Wir können die Synchronisation in Selenium Webdriver mithilfe verschiedener Wartemechanismen durchführen: 

Erwähnen Sie die Hauptunterschiede zwischen TestNg @BeforeTest und @BeforeMethod? 

In TestNg haben @BeforeTest und @BeoreMethod verschiedene Aspekte:

Liste der verschiedenen Arten von WebDriver-APIs in Selenium?

Auf wie viele Arten können Sie mit Selen eine kopflose Ausführung erreichen?

Wir können die folgenden Treiber verwenden, um mit Selenium eine kopflose Automatisierung zu erreichen: 

Was ist Fluent Wait In Selenium WebDriver?

Mit FluentWait können Sie eine maximale Zeitspanne (z. B. 3 Minuten) festlegen, um zu warten, bis eine bestimmte Bedingung erfüllt ist. Während dieser Zeit werden Sie kontinuierlich mit einer bestimmten Häufigkeit (sehr kleine Zeiteinheit, z. B. 3) abfragen oder überprüfen Sekunden) zu überprüfen.

Wenn die Bedingung erfüllt ist, wird true zurückgegeben. Wenn nicht, wird eine Ausnahme "ElementNotVisibleException" ausgelöst.

Die Syntax von Fluentwait in Selen lautet:

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

Teilen Sie uns einige Selenium-Ausnahmen mit, auf die Sie bei der Arbeit mit Selenium WebDriver gestoßen sind.

Wie löscht man Cookies in Selen?

Der Befehl zum Löschen der Cookies in Selen lautet: 

driver.manage().deleteAllCookies();

Erläutern Sie den Ansatz, wie Sie die Javascript-Variable in Selenium Webdriver lesen.

Wir müssen JavascriptExecutor verwenden, um dies zu tun. 

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

Wie führe ich den Browser-Vorgang zum Vergrößern und Verkleinern in Selen aus?

Wir können in Selenium zoomen und verkleinern, indem wir zwei verschiedene Ansätze verwenden, wie zum Beispiel: 

Vergrößern Sie mit der Robot-Klasse in Selen

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);

Verkleinern Sie mit der Robot-Klasse in Selen


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

Vergrößern Sie mit der Keys-Klasse in Selen

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

Verkleinern Sie mit der Robot-Klasse in Selen

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

Wie lösche ich ein Feld in Selen ohne eine clear () -Methode?

Wir können jedes Feld löschen, ohne die clear () -Methode im folgenden Ansatz zu verwenden: 

Wir können die Keys-Klasse in Selen verwenden, um dasselbe zu erreichen: 

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

Wie können die fehlgeschlagenen Testfälle in Selen erneut ausgeführt werden?

Wir können die fehlgeschlagenen Testfälle in Selen in den folgenden zwei Ansätzen wiederholen:

Mit automatisch generierter TestNG-failed.xml:

Nach der Testausführung (ausgeführt von testng.xml) generiert TestNG automatisch TestNG-failed.xml. Sie können dasselbe XML erneut ausführen, um NUR die fehlgeschlagenen Tests auszuführen.

Durch die Implementierung IRetryAnalyzer-Schnittstelle von testNg :

Durch die Implementierung der Schnittstelle IRetryAnalyzer können wir die fehlgeschlagenen Testfälle mit TestNg automatisch erneut ausführen:


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;
   }
}

Wie hebe ich ein Element in Selenium WebDriver hervor?

Wir können JavascriptExecutor verwenden, um die Farbe des Webelements festzulegen, indem wir das Element erwähnen.


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);

Wie doppelklicke ich in Selen?

Wir können das benutzen Aktionsklasse in Selen um die DoubleClick-Operationen wie unten beschrieben auszuführen. Die folgende Methode akzeptiert ein Argument, für das Sie DoubleClick ausführen müssen.

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}

Wie scrolle ich in Selen?

Wir müssen Javascript verwenden, um das Scrollen durchzuführen, und die folgende Methode bietet einen erweiterten Ansatz, um in das Element zu scrollen, bis das Element sichtbar ist, das in die Ansicht scrollen kann: 

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);

  }

}

Wie bekomme ich alle Links auf der Seite in Selen?

Wir können By.tagName ("a") verwenden, um alle auf der Seite verfügbaren Links abzurufen, da sich der Link auf das als a bezeichnete Tag bezieht. Die Methode läuft wie folgt ab: 

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;
  }

}

Wie finde ich die Anzahl der Iframes auf einer Seite in Selen?

Wir können die folgende Methode verwenden, um die Anzahl der Iframes auf einer Seite in Selen zu ermitteln:

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;
  }

}

Wie wechsle ich zum Standard-Frame in Selenium Webdriver?

Wir können die Methode switchTo (). DefaultContent () verwenden, um in Selenium Webdriver zum Standardframe zu wechseln: 

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 ");
  }
}

Wie gehe ich mit Tabs in Selen um?

Wir können eine Liste verwenden, um alle verfügbaren Registerkarten zu speichern, und driver.getWindowHandles () verwenden, um die Registerkarten zu speichern. Danach können wir die Registerkarten im folgenden Ansatz einzeln behandeln, z. 

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 Interview Fragen

Ist WebDriver eine Klasse oder eine Schnittstelle?

Webdriver ist eine Schnittstelle, in der alle Treiberklassen wie ChromeDriver und FirefoxDriver ein Objekt erstellen und auf die Referenz der Webdriver-Schnittstelle verweisen.

Welches ist schneller, XPath oder CSS?

CSS ist schneller als XPath. 

Warum ist CSS schneller als XPath?

Jede Browser-Engine ist anders, und daher unterscheiden sich die Analysestrategie und die Engine-Implementierung durch den geschriebenen XPath. Aus diesem Grund wird das Parsen von XPath manchmal inkonsistent. Beispielsweise verfügt der IE nicht über eine eigene Engine-Implementierung zum Parsen von XPATH. Daher injiziert Selenium seine eigene native XPath-Engine, um XPATH im IE zu analysieren. 

Was sind erhöhte privilegierte Browser?

Wenn die Browser mit einigen vordefinierten Einstellungen (Instanz mit speziellem privilegierten Modus) geöffnet werden, z. B. mit bestimmten Profilen oder Zertifikaten, spricht man von Sitzungen mit erhöhten privilegierten Browsern. 

Wir können Starten Sie einen Browser mit Selenium mit Profiling oder setzen Sie Zertifikate für die gleichen Zwecke.

Was ist Headless Browser Selenium und wie führen wir Headless Browsertests durch?

  Ein Headless-Browser ist ein Simulationsprogramm für den Browser, in dem wir keine Benutzeroberfläche haben, die getestete Anwendung jedoch im unsichtbaren Modus ausführen können 

 und führen Sie die gewünschte Weboperation im Hintergrund aus.

 Wir verwenden HeadLess-Browsertreiber wie den HTMLUNIT-Treiber oder den PhantomJS-Treiber, um kopflose Browsertests durchzuführen.

Selen gegen Puppenspieler? 

Es gibt verschiedene Unterschiede zwischen Selen und Puppenspieler (ein neues Tool im Vergleich zu Selen und entwickelt von Google Chrome DEV).

Wir werden hier den Vergleich zwischen Selenium VS Puppeteer in verschiedenen Aspekten diskutieren: 

HardAssert vs SoftAssert?

Beide Assertionsansätze stammen von TestNg, und jeder von ihnen hat seine jeweiligen Vor- und Nachteile

 Wenn Sie sich unter den Umständen befinden, unter denen Sie eine offensichtliche Behauptung benötigen, dh ohne diesen Schritt sind die verbleibenden Schritte des Skripts nicht sinnvoll, um ausgeführt zu werden, können Sie dort Hard Assert einfügen.

 Wie stelle ich die Fenstergröße in Selen ein?

Wir können ein Objekt der Dimension-Klasse erstellen und dieses Objekt an die setSize () -Methode übergeben: 

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

Welches Versionskontrollsystem verwenden Sie bei der Arbeit mit Selen?

Sie können jedes von Ihnen verwendete VCS wie Github, SVN usw. erwähnen.

Wie klone ich ein Git Repo?

Wir können das Git-Repo klonen, indem wir Folgendes verwenden:

Git clone repo

Wie ziehe ich den Git-Repo-Code?

Git pull remoteRepoURL branchName

Wie schiebe ich den Code auf Git Repo?

Git push remoteURL branchName

Wie stelle ich die Fernbedienung ein? 

git remote add ProvideARemoteName remoetURL

Wie überprüfe ich die verfügbaren Fernbedienungen?

Git remote -v 

Wie überprüfe ich, in welcher Remote-URL Sie sich gerade befinden? 

git config --get remote.origin.url

Wie können Sie Ihr Framework in Jenkins integrieren?

Als Teil des Selenium Automation-Frameworks verwenden wir Build-Tools (wie Maven / Gradle). Wir können einen Jenkins-Job erstellen und den Maven / Gradle verbinden, indem wir die Konfiguration mit VCS (dh Github usw.) bereitstellen.

Was sind die Nachteile von Sikuli?

Wie führe ich Datenbanktests mit Selen durch?

Wir können Datenbanktests mit Selen im folgenden modularen Ansatz durchführen: 

Hier ist das folgende Codefragment für die obigen Schritte: 

Selenium-Datenbankverbindung Richten Sie mit JAVA JDBC ein und erstellen Sie eine DB-Anweisung: 

   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();

       }


   }

Verwenden Sie die Anweisung, um die Datenbank mit SQL abzufragen: 

@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();
   }
}

Schließen der Datenverbindung: 

Dieser Schritt ist sehr wichtig; Andernfalls werden möglicherweise mehrere Datenbankverbindungen erstellt, ohne diese nach der Verwendung zu schließen, was zu mehreren Problemen führen kann. 

Hier ist das Code-Snippet für dasselbe: 

@AfterTest
public void tearDown() throws Exception {

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

Wie überprüfe ich die Hintergrundfarbe und Farbe eines WebElements mit Selen? 

Wir müssen eine Methode namens verwenden getCssValue ("Farbe") zum Abrufen der Farbe eines Webelements und getCssValue ("Hintergrundfarbe") um die Hintergrundfarbe eines Webelements zu ziehen.

Hier ist das Code-Snippet: 

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");

Wie überprüfe ich die Schriftgröße eines WebElements mit einem Selenium-Webdriver? 

Wir können die Methode getCssValue ("Schriftgröße") verwenden.

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

Wie überprüfe ich den Schrifttyp eines Webelements in Selenium Webdriver? 

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

Wie bekomme ich Tooltip-Text in Selen?

Das Abrufen des Tooltip-Textes eines WebElements ist nichts anderes als das Abrufen des title-Attributs des Webelements auf folgende Weise: 

public String getToolTipData(By locator){

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

Was ist StaleElementException? 

Veraltetes Element bedeutet, dass ein Webelement nicht mehr mit dem zuvor vorhandenen DOM / der Webseite verbunden ist. In diesem Fall löst Selen eine Ausnahme für veraltete Elemente aus.

Dies kann aus mehreren Gründen geschehen, z. B. aufgrund von AJAX- oder JavaScript-Aufrufen, die den Status ändern

des Elements macht es nicht verfügbar / vom DOM getrennt.  

Zusammenfassung : Damit sind wir mit den Sets of Critical Selenium-Interviewfragen fertig, die die Selenium Framework-Interviewfragen abdecken. Lesen Sie hier durch, um in die Tiefe zu gehen Konzepte von Selen die Architektur von Selen zu verstehen.

Hinterlasse einen Kommentar