71 questions d'entretien critiques sur Selenium sans réponse

Dans ce didacticiel sur les questions d'entretien sur le sélénium, nous couvrirons toutes les questions critiques d'entrevue sur Selenium ainsi que les questions d'entretien avancées du cadre Selenium Automation.Ce didacticiel est divisé en trois segments:

Questions d'entretiens chez Selenium Framework

Questions d'entretiens chez Advance Selenium

Questions d'entretien intermédiaire sur le sélénium

REMARQUE : L'objectif de ce didacticiel de questions et réponses d'entretien Selenium est de discuter du questionnaire le plus critique et le plus complexe, car vous connaissez peut-être déjà les questionnaires de base.

Dans un premier temps, nous commencerons par les questions et réponses de l'entretien Advance Selenium Framework, puis nous passerons aux questions et réponses de l'entretien Critical/Advanced Selenium, puis enfin, nous terminerons ce didacticiel avec des niveaux intermédiaires afin que vous puissiez bien vous préparer.

Questions d'entretiens chez Selenium
Questions d'entretiens chez Selenium

Questions d'entretiens chez Selenium Framework

Questions d'entretiens chez Advance Selenium

Questions d'entretien intermédiaire sur le sélénium

Questions d'entrevue avec Selenium Framework: 

Combien de types populaires de framework Selenium existe-t-il?

Il existe quatre types différents de framework Selenium, à savoir: 

Combien d'approches différentes existe-t-il pour concevoir le cadre du modèle d'objet de page?

Qu'est-ce que la Page Factory en sélénium?

PageFactory est une classe de la bibliothèque Selenium d'un package appelé org.openqa.selenium.support qui aide à concevoir le modèle de conception d'objet de page dans le cadre de modèle d'objet de page, qui a peu d'implémentations telles que:

Quelle est la principale différence de conception entre le modèle d'objet de page classique et le modèle d'objet de page personnalisé?

Ainsi, chaque page Web doit avoir une interface pour stocker les localisateurs et 1 classe pour les opérations Web au niveau de la page et leurs affirmations de respect.

Quel est le principe de conception du cadre de modèle d'objet de page?

Le principe de conception du cadre de modèle d'objet de page est basé sur des principes ou des concepts, qui sont: 

Ainsi, toutes les actions de page (différentes opérations de la fonctionnalité de page Web) résident sur les classes de page respectives.

Mentionner les principales différences entre le modèle d'objet de page et le modèle d'objet de page hybride?

La différence entre le modèle d'objet de page et le modèle d'objet de page hybride réside dans le fait que le modèle d'objet de page hybride est basé sur la conception de l'infrastructure de modèle d'objet de page avec les fonctionnalités étendues de l'infrastructure basée sur les données et prend en charge une grande variété d'utilitaires d'opérations de données tels que ci-dessous. : 

Quel est le langage Parser utilisé dans le framework Cucumber -BDD?

L'analyseur de langage utilisé dans le framework Cucumber -BDD est Gherkin.

Quelle est la langue Gherkin?

Gherkin est un langage DSL (Domain Specific Language) et anglais, qui est très lisible et compréhensible (c'est-à-dire, give (), when (), then (), etc.)

Qu'entendez-vous par given () dans Gherkin?

 La méthode Given () indique qu'une situation ou un scénario est donné ou énoncé.

 Qu'entendez-vous par when () dans Gherkin?

Lorsque () signifie que vous effectuez certaines opérations.

Qu'entendez-vous par là () dans Gherkin?

then () est utilisé comme assertions une fois les opérations effectuées par given (). when ().

Quel outil CI utilisez-vous dans le cadre du cadre?

Nous utilisons Jenkins (majoritairement) comme un outil CI open source.

Quel outil de construction utilisez-vous dans le cadre du framework?

Nous utilisons des outils de construction tels que Maven / Gradle / ant (il était auparavant utilisé).

Quelle est la principale différence entre maven et Gradle?

Gradle est la version avancée de ce que maven exécute, et avec cela, nous pouvons également créer des tâches (comme la fonctionnalité qui était disponible dans ANT), afin que nous puissions considérer à un niveau élevé: 

Gradle = >> Maven + Fourmi 

Dans le cadre de Selenium C #, nous utilisons Gallio comme outil de construction. 

Quel est le framework de test unitaire que nous utilisons dans le cadre du framework Selenium Automation?

Nous utilisons principalement TestNG / JUnit (JUnit est moins utilisé de nos jours) dans le cadre du cadre de test unitaire tout en construisant le cadre d'automatisation avec Selenium. 

Dans le cadre du framework Selenium C #, nous utilisons NUnit / MbUnit comme framework de test unitaire.

Quelle approche peut être prise en compte lors de la conception des outils de reporting dans le cadre du framework Selenium?

Il existe différentes approches de reporting que nous pourrions adopter lors de la conception du cadre:

Outre l'intégration de ces outils de reporting open-source, nous pouvons également opter pour certaines fonctionnalités de reporting avancées ou un tableau de bord à construire avec les technologies et outils ci-dessous:

Comment utilisez-vous ELK pour créer le tableau de bord de reporting avec Selenium Framework:

Il existe un principe de conception de base de base utilisé pour concevoir le tableau de bord d'automatisation, à savoir: 

Comment créer un rapport HTML personnalisé?

Vous pouvez utiliser différentes interfaces d'écouteurs et de rapporteurs fournies par TestNg pour enregistrer les événements et leurs ensembles de données respectifs et créer du HTML en utilisant ces ensembles de données et les balises HTML dans les utilitaires de rapport.

Quels sont les défis que vous avez rencontrés lors de l'élaboration d'un cadre?

Il y a différents défis que vous pouvez mentionner selon votre expérience lors du développement du cadre, par exemple: 

Mentionner tous les composants Selenium que vous avez utilisés dans votre Framework Selenium?

Vous pouvez mentionner en fonction de votre cadre.

Quel est le flux de votre framework d'automatisation?

Vous pouvez mentionner le flux d'exécution de votre framework en fonction de votre flux Framework et des outils que vous avez utilisés; Voici un exemple que vous pouvez citer:

CI (Jenkins) → Outils de construction (Maven /gradle) → Unit Test Framework (TestNg) → TestNg.xml - >> TestClasses → BaseTest (Chaque classe de test étend la classe de base en tant que baseTest où @beforeClass / @ BeforeSuite @afterClass etc. classe réutilisable pour les utilitaires WebAction) - >> Reporting Utils 

Qu'entendez-vous par cadre basé sur les données et où utilisons-nous un cadre basé sur les données?

Un framework basé sur les données est essentiellement un cadre basé sur les données. Cela dit, dans lequel l'application ou le type d'application où les mêmes cas de test ou scénarios sont exécutés plusieurs fois avec les différents ensembles de données ou la source ou les données est très vaste comme dans le cas où nous devons interagir avec une variété de Les sources de données là-bas, nous utilisons un cadre basé sur les données. 

Les différentes sources de données peuvent être: 

Comment expliquer le cadre d'automatisation du sélénium dans une interview?

 Il existe différentes approches que vous pouvez adopter pour expliquer le cadre d'automatisation du sélénium dans une interview; la meilleure approche possible pourrait être l'approche modulaire, qui consiste à décomposer l'explication en différents modules séparés, tels que:

Discutons en détail: 

Type de cadre et caractéristiques clés et uniques du cadre:

Vous devez mentionner le type de cadre tel que le cadre hybride, le cadre de modèle d'objet de page, le cadre de modèle d'objet de page hybride, etc. 

Vous devez mentionner les caractéristiques uniques du framework, comme par exemple:

Outils et technologies utilisés dans le cadre Selenium:

Vous pouvez mentionner les outils et technologies utilisés lors du développement du framework, tels que:

Le déroulement de l'exécution du Framework Selenium:

Vous pouvez mentionner le déroulement de l'exécution du framework, c'est-à-dire comment déclencher les suites de tests et comment elles se dirigent vers les cas de test / méthodes et jusqu'à ce que les outils du framework tels que les webutils, les outils de données, etc. Vous pouvez vous référer à la question ci-dessus où nous avons discuté de la façon d'expliquer le flux de l'exécution du framework Selenium.

Différents scénarios critiques gérés par votre framework:

Dans ce module, vous pouvez discuter des fonctionnalités critiques qui ont été automatisées dans le cadre de l'automatisation de votre application avec votre infrastructure. Il existe de nombreux cas d'utilisation ou fonctionnalités que vous pouvez mentionner ici, tels que: 

Comment concevoir des scénarios de journalisation dans le framework Selenium?

Vous pouvez utiliser log4j pour la journalisation, ou vous pouvez utiliser la journalisation en temps réel et l'implémentation du tableau de bord de débogage avec Graylog, qui utilise essentiellement ElasticSearch dans le backend pour les détails de journalisation et de débogage en temps réel.

Quels sont les modèles de conception que vous avez utilisés lors de la conception du cadre?

Vous pouvez utiliser différents modèles de conception selon les besoins et la conception du cadre d'automatisation, tels que:

Questions d'entrevue critiques ou avancées sur Selenium:

De combien de façons pouvez-vous exécuter votre script d'automatisation en parallèle?

Il existe plusieurs façons et approches par lesquelles vous pouvez exécuter vos scripts de test en parallèle, telles que: 

Maven:

Utilisation du plugin infaillible: 

5

 vrai

Ici, le nombre de fourches représente le nombre de threads parallèles.

Gradle: 

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

Quelle est la différence entre les méthodes setSpeed ​​() et sleep ()?

La méthode setSpeed ​​() de Selenium définit essentiellement la vitesse d'exécution de chaque action / commande. 

Disons donc que si vous définissezSpeed ​​(«2000»), chaque ligne d'exécution sera retardée de 2000 millisecondes. 

D'autre part, Thread.sleep () introduira un délai de 3000 millisecondes (il suspendra le thread pour l'opération spécifique). 

Par conséquent, sleep () est appliqué à 1 opération; d'autre part, setSpeed ​​() introduit le délai pour chaque opération et définit ainsi la vitesse de l'exécution.  

Comment vérifier la présence d'un ScrollBar avec Selenium? 

Pour vérifier la barre de défilement horizontale dans la page Web avec Selenium, nous utilisons Javascriptexecutor de la manière ci-dessous: 

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

Pour vérifier la barre de défilement verticale dans WebPage à l'aide de Le pilote Web Selenium doit également utiliser Javascriptexecutor

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

Ecrire le code pour gérer les éléments Web cachés dans sélénium webdriver?

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

Mentionner différentes approches pour gérer une fenêtre contextuelle à l'aide du pilote Web Selenium ?

Vous pouvez utiliser les approches ci-dessous pour gérer les applications basées sur Windows, telles que Window Pop up: 

Quelle est l'interface parent de WebDriver?

RechercherContexte

Mentionner les principales différences entre POI et JXL Jars?

POI prend en charge le formatage conditionnel, le formatage de texte enrichi ou le format xlsx, mais d'un autre côté, JXL ne prend en charge aucune de ces fonctionnalités.

La bibliothèque de POI est maintenue et mise à jour par rapport à JXL.

Comment gérez-vous les latences de votre réseau avec Selenium?

Nous pouvons utiliser les éléments suivants pour gérer la latence du réseau en utilisant Selenium: 

Pilote.manage.pageloadingtime

Quelles sont les approches que vous adopteriez pour gérer les tests de contenu Ajax avec Selenium WebDriver?

AJAX est essentiellement du Javascript asynchrone et du XML. Toute la communication de l'Application AJAX est basée sur des appels asynchrones, 

qui permettent à tout événement d'être exécuté sans actualiser la page Web. Chaque opération peut être effectuée indépendamment des autres événements.

Quels sont les défis lorsque vous travaillez avec des appels AJAX dans Pilote Web Selenium?

Pour travailler avec l'application AJAX, vous devrez peut-être utiliser des attentes pour les cas d'utilisation mentionnés ci-dessus: 

Quelle est l'approche pour travailler avec Proxy dans Selenium Webdriver?

Il existe deux approches différentes pour gérer le proxy dans Selenium Webdriver: 

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

Mentionner les moyens de réaliser la synchronisation dans WebDriver?

Nous pouvons gérer la synchronisation dans Selenium webdriver en utilisant différents mécanismes d'attente: 

Mentionner les principales différences entre TestNg @BeforeTest et @BeforeMethod? 

Dans TestNg @BeforeTest et @BeoreMethod a différents aspects, sont:

Liste des différents types d'API WebDriver présents dans Selenium?

De combien de façons pouvez-vous réaliser une exécution sans tête avec Selenium?

Nous pouvons utiliser les pilotes ci-dessous pour réaliser une automatisation sans tête avec Selenium: 

Qu'est-ce que Fluent Wait In Selenium WebDriver?

Avec FluentWait, vous pouvez définir une durée maximale (disons 3 minutes) pour attendre pour répondre à une condition spécifique, et pendant ce temps, vous interrogerez ou vérifierez en continu avec une certaine fréquence (très petite unité de temps, disons 3 secs) pour vérifier.

Si la condition est remplie, alors il retournera vrai, et sinon, il lèvera une exception «ElementNotVisibleException».

La syntaxe de fluentwait dans Selenium est:

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

Dites-nous quelques exceptions Selenium que vous avez rencontrées en travaillant avec` Selenium WebDriver?

Comment supprimez-vous les cookies dans Selenium?

La commande pour supprimer les cookies dans Selenium est: 

driver.manage().deleteAllCookies();

Expliquez l'approche que comment lisez-vous la variable javascript dans sélénium webdriver?

Nous devons utiliser JavascriptExecutor pour pouvoir le faire. 

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

Comment effectuer un zoom avant et un zoom arrière sur le navigateur dans Selenium?

Nous pouvons effectuer des opérations de zoom avant et de zoom arrière dans Selenium en utilisant deux approches différentes, telles que: 

Zoom avant en utilisant la classe Robot dans le sélénium

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 arrière à l'aide de la classe Robot dans le sélénium


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 avant à l'aide de la classe Keys dans le sélénium

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

Zoom arrière à l'aide de la classe Robot dans le sélénium

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

Comment effacer un champ en sélénium sans utiliser la méthode clear ()?

Nous pouvons effacer n'importe quel champ sans utiliser la méthode clear () dans l'approche ci-dessous: 

Nous pouvons utiliser la classe Keys dans Selenium pour obtenir la même chose: 

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

Comment réexécuter les cas de test ayant échoué dans le sélénium?

Nous pouvons réexécuter les cas de test ayant échoué dans Selenium dans les deux approches ci-dessous:

Avec TestNG-failed.xml généré automatiquement:

Après l'exécution du test (exécuté à partir de testng.xml), TestNG génère automatiquement TestNG-failed.xml; vous pouvez réexécuter le même XML pour exécuter UNIQUEMENT les tests ayant échoué.

En mettant en œuvre Interface IRetryAnalyzer de testNg :

En implémentant l'interface IRetryAnalyzer, nous pouvons automatiquement réexécuter les cas de test ayant échoué avec 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;
   }
}

Comment mettre en évidence un élément dans Selenium WebDriver?

Nous pouvons utiliser JavascriptExecutor pour définir la couleur du Webelement en mentionnant l'élément.


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

Comment double-cliquer dans le sélénium?

Nous pouvons utiliser le Classe d'actions dans Selenium pour effectuer les opérations DoubleClick de la manière ci-dessous. La méthode ci-dessous prend un argument sur lequel vous devez effectuer DoubleClick.

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}

Comment faire défiler dans le sélénium?

Nous devons utiliser Javascript pour effectuer le défilement, et la méthode ci-dessous fournit une approche avancée pour faire défiler l'élément jusqu'à ce que l'élément soit visible, ce qui fait défiler la vue: 

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

  }

}

Comment obtenir tous les liens de la page en sélénium?

Nous pouvons utiliser By.tagName ("a") pour récupérer tous les liens disponibles sur la page car le lien se réfère à la balise appelée a; la méthode se déroule de la manière ci-dessous: 

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

}

Comment trouver le nombre d'iframes sur une page dans Selenium?

Nous pouvons utiliser la méthode ci-dessous pour trouver le nombre d'iframes dans une page dans Selenium:

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

}

Comment passer au cadre par défaut dans Selenium Webdriver?

Nous pouvons utiliser la méthode switchTo (). DefaultContent () pour passer au cadre par défaut dans 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 ");
  }
}

Comment gérer les onglets en sélénium?

Nous pouvons utiliser une liste pour stocker tous les onglets disponibles et utiliser driver.getWindowHandles () pour stocker les onglets, et une fois après cela, nous pouvons gérer les onglets un par un dans l'approche ci-dessous, comme: 

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

  }



}

Questions d'entretien intermédiaire sur le sélénium

WebDriver est-il une classe ou une interface?

Webdriver est une interface où toutes les classes de pilotes telles que ChromeDriver, FirefoxDriver créent un objet et font référence à la référence de l'interface Webdriver.

Lequel est le plus rapide, XPath ou CSS?

CSS est plus rapide que XPath. 

Pourquoi CSS est plus rapide que XPath?

Chaque moteur de navigateur est différent, et par conséquent, la stratégie d'analyse et la mise en œuvre du moteur sont différentes à travers le XPath écrit. C'est pourquoi l'analyse de XPath devient parfois incohérente; par exemple, IE n'a pas sa propre implémentation de moteur pour analyser XPATH; Par conséquent, Selenium injecte son propre moteur XPath natif pour analyser XPATH dans IE. 

Qu'est-ce que les navigateurs privilégiés renforcés?

Lorsque les navigateurs sont ouverts avec certains paramètres prédéfinis (instance avec un mode privilégié spécial) comme avec certains profils ou certificats, cela s'appelle des sessions de navigateurs privilégiés renforcés. 

Nous pouvons lancer un navigateur avec Selenium avec profilage ou définir des certificats aux mêmes fins.

Qu'est-ce que le navigateur sans tête Selenium et comment effectuons-nous des tests de navigateur sans tête?

  Un navigateur sans tête est un programme de simulation pour le navigateur où nous n'avons pas d'interface utilisateur, mais nous pouvons toujours exécuter l'application sous test en mode invisible 

 et effectuez l'opération Web souhaitée en arrière-plan.

 Nous utilisons des pilotes de navigateur HeadLess tels que le pilote HTMLUNIT ou le pilote phantomJS pour effectuer des tests de navigateur sans tête.

Sélénium contre marionnettiste? 

Il existe plusieurs différences entre Selenium et marionnettiste (qui est un nouvel outil par rapport à Selenium et développé par Google Chrome DEV)

Nous discuterons ici de la comparaison entre Selenium VS Puppeteer sous différents aspects: 

HardAssert vs SoftAssert?

Les deux approches d'assertion proviennent de TestNg, et chacune d'elles a ses avantages et ses inconvénients respectifs

 Lorsque vous êtes dans des circonstances où vous avez besoin d'une assertion qui est évidente, c'est-à-dire que sans cette étape, les étapes restantes du script n'ont pas de sens pour être exécutées, alors vous pouvez y mettre Hard Assert.

 Comment définir la taille de la fenêtre en sélénium?

Nous pouvons créer un objet de la classe Dimension et transmettre cet objet à la méthode setSize (): 

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

Quel est le système de contrôle de version que vous utilisez lorsque vous travaillez avec Selenium?

Vous pouvez mentionner tout VCS que vous utilisez, tel que Github, SVN, etc.

Comment cloner un repo git?

Nous pouvons cloner le dépôt git en utilisant:

Git clone repo

Comment extraire le code du repo Git?

Git pull remoteRepoURL branchName

Comment pousser le code vers git repo?

Git push remoteURL branchName

Comment configurer la télécommande? 

git remote add ProvideARemoteName remoetURL

Comment vérifier les télécommandes disponibles?

Git remote -v 

Comment vérifier dans quelle URL distante vous vous trouvez actuellement? 

git config --get remote.origin.url

Comment pouvez-vous intégrer votre framework avec Jenkins?

Dans le cadre du framework Selenium Automation, nous utilisons des outils de construction (tels que Maven / Gradle), et nous pouvons créer un Job Jenkins et connecter le Maven / Gradle en fournissant la configuration avec VCS (c'est-à-dire, Github, etc.)

Quels sont les inconvénients de Sikuli?

Comment effectuer des tests de base de données avec du sélénium?

Nous pouvons effectuer des tests de base de données en utilisant du sélénium dans l'approche modulaire ci-dessous: 

Voici l'extrait de code ci-dessous pour les étapes ci-dessus: 

Configuration de la connexion à la base de données Selenium avec JAVA JDBC et crée une instruction DB: 

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

       }


   }

Utilisez l'instruction pour interroger la base de données avec SQL: 

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

Fermeture de la connexion de données: 

Cette étape est très importante; sinon, nous pouvons finir par créer plusieurs connexions à la base de données sans les fermer après l'utilisation, ce qui peut causer plusieurs problèmes. 

Voici l'extrait de code pour le même: 

@AfterTest
public void tearDown() throws Exception {

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

Comment vérifier la couleur et la couleur d'arrière-plan d'un WebElement à l'aide de Selenium? 

Nous devons utiliser une méthode appelée getCssValue ("color") pour récupérer la couleur d'un webelement et getCssValue ("background-color") pour extraire la couleur d'arrière-plan d'un élément Web.

Voici l'extrait de code: 

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

Comment vérifier la taille de la police d'un WebElement à l'aide de Selenium Webdriver? 

Nous pouvons utiliser la méthode appelée getCssValue ("font-size")

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

Comment vérifier le type de police d'un élément Web dans Selenium Webdriver? 

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

Comment obtenir le texte de l'info-bulle en sélénium?

Obtenir le texte de l'info-bulle d'un WebElement n'est rien d'autre que d'obtenir l'attribut title du Webelement de la manière ci-dessous: 

public String getToolTipData(By locator){

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

Qu'est-ce que StaleElementException? 

Elément périmé signifie que lorsqu'un élément Web n'est plus attaché au DOM / WebPage qui était présent précédemment. Dans ce cas, Selenium lance une exception staleelement.

Cela peut se produire pour plusieurs raisons, comme en raison d'appels AJAX ou JavaScript qui modifient l'état

de l'élément le rend indisponible / détaché du DOM.  

Conclusion : Avec ceux-ci, nous en avons terminé avec les ensembles de questions d'entrevue critiques sur Selenium couvrant les questions d'entrevue du cadre Selenium. Lisez ici pour approfondir concepts de sélénium pour comprendre l'architecture de Selenium.

Laisser un commentaire