Debe leer 30 preguntas y respuestas de la entrevista de Selenium: Guía definitiva 2022

Publicado: 2021-01-04

¿Está asistiendo a una entrevista importante y se pregunta cuáles son todas las preguntas de la entrevista de Selenium por las que pasará?

Hemos creado esta guía de preguntas y respuestas de la entrevista de Selenium más leída para ayudarlo a comprender la profundidad de las preguntas y enfrentarlas con confianza.

En estos días, las aplicaciones web están en auge. Con la creciente necesidad de aplicaciones web, también existe el requisito inevitable de probar estas aplicaciones web. Ahí es donde entra en acción Selenium. Selenium es una de las herramientas de prueba automatizadas de uso común que garantiza que la aplicación web funcione correctamente. Si las pruebas se hicieran manualmente, utilizaría varias horas de trabajo y también aumentaría el costo.

Además, dado que son manuales, son propensos a errores. Las pruebas manuales no ayudan a largo plazo, por lo que las pruebas automatizadas como Selenium están ganando demanda en la industria. Si está siguiendo su carrera en pruebas automatizadas y tiene una próxima entrevista en Selenium, este blog es para usted.

En este blog, discutiremos aquí las preguntas de entrevista de Selenium más comunes. Estos son para ambos: los principiantes y las preguntas de la entrevista de Selenium para los experimentados.

Preguntas y respuestas de la entrevista de selenio 2022

P.1) ¿Por qué elegir Selenium sobre otras herramientas de prueba automatizadas?

Selenium es de código abierto. Es muy fácil de adaptar en comparación con otras herramientas automatizadas del mercado. Por esta razón, muchas empresas optan por las pruebas automatizadas de Selenium en lugar de otros métodos tradicionales.

P.2) Enumere algunos beneficios de Selenium sobre herramientas como TestComplete y QTP. Además, ¿cuáles son las desventajas?

Selenium no requiere una licencia, a diferencia de TestComplete y QTP, siendo fácil para el bolsillo. La comunidad en línea ofrece un apoyo masivo. Los ciclos de lanzamiento son más pequeños y la respuesta es rápida en comparación con TestComplete y QTP. Además, Selenium también funciona en Mac, Linux y Windows.

Por el contrario, Selenium requiere que un desarrollador tenga altas habilidades de codificación. Mientras que QTP y TestComplete requieren un nivel bajo a moderado de habilidades de codificación, respectivamente.

P.3) ¿Qué cambios se han producido en las distintas actualizaciones de la versión de Selenium?

En la primera versión de Selenium, Selenium v1, solo constaba de tres conjuntos de herramientas, que son Selenium IDE, RC y Grid. Faltaba el controlador web. Fue solo en la segunda versión de Selenium, Selenium v2, que se introdujo Webdriver. Una vez hecho esto, Selenium RC ya no estaba en uso.

Puede encontrarlos en el mercado, pero el soporte no está disponible. La próxima versión de Selenium es Selenium v3. Consiste en Webdriver, IDE y Grid. Actualmente está en uso. También está disponible una versión más nueva, Selenium v4.

Selenium IDE es principalmente para grabar y reproducir. El Webdriver es para probar las aplicaciones web dinámicas utilizando una interfaz de programación. Grid se utiliza para emplear pruebas en máquinas host remotas.

Debe usar el IDE para grabar y reproducir las pruebas. Un WebDriver se usa para probar aplicaciones web activas usando una interfaz de programación, y Grid se emplea para implementar pruebas en máquinas anfitrionas aisladas.

P.4) ¿Cuáles son las diversas excepciones en Selenium WebDriver?

Al igual que cualquier otro lenguaje de programación, también puede encontrar excepciones en Selenium. Puede encontrar las siguientes excepciones en Selenium WebDriver:

TimeoutException: obtiene esta excepción cuando un comando no realiza una acción en el tiempo especificado.

NoSuchElementException: Obtiene esta excepción cuando no puede encontrar un elemento con los atributos dados en una página web.

ElementNotVisibleException: Obtiene esta excepción cuando un elemento está disponible en el modelo de objeto del documento, pero no se ve en la página web.

StaleElementException: obtiene esta excepción cuando un elemento no está adjunto al modelo de objeto del documento o se elimina.

P.5) Explique la prueba de excepción de Selenium

La excepción que espera que se produzca dentro de una clase de prueba es una prueba de excepción. Si escribe un caso de prueba con la intención de que genere una excepción, debe usar la anotación @test y también mencionarla en los parámetros en los que se generaría la excepción. Por ejemplo,

@Test(expectedException = NoSuchElementException.class)

P.6) ¿Existe la necesidad de una hoja de Excel en un proyecto? es si, como?

Las hojas de Excel se utilizan como fuente de datos durante las pruebas. Además, también almacena el conjunto de datos mientras ejecuta pruebas basadas en datos. Cuando se utilizan hojas de Excel como fuente de datos, puede almacenar:

URL de la aplicación: los desarrolladores pueden mencionar la URL del entorno bajo el cual se ejecuta la prueba. Por ejemplo, entorno de prueba, entorno de desarrollo, entorno de control de calidad, entorno de producción o entorno de prueba.

Información de nombre de usuario y contraseña: las hojas de Excel pueden mantener seguras las credenciales de acceso como el nombre de usuario de una contraseña de varios entornos. Los desarrolladores pueden cifrar y almacenar estos detalles por razones de seguridad.

Casos de prueba: los desarrolladores pueden crear una tabla en la que una columna escriba el nombre del caso de prueba y la otra que diga si se ejecutará o no.

Si va a utilizar hojas de Excel para DataDriven Test, puede almacenar fácilmente la información para que se ejecuten varias duplicaciones durante las pruebas. Por ejemplo, todos los datos que deben escribirse en un cuadro de texto para probar en una página web se pueden almacenar en las hojas de Excel.

P.7) ¿Qué es POM? enumerar sus ventajas?

POM significa Modelo de objeto de página. Es un patrón de diseño para crear un repositorio de objetos para elementos de la interfaz de usuario web. Cada página web de la aplicación debe tener su propia clase de página correspondiente, que se encarga de buscar los WebElements en esa página y luego ejecutar operaciones en ellos.

Las ventajas de utilizar el modelo de objetos de página son:

  • Hace que el código sea legible al permitir que los desarrolladores separen las operaciones y los flujos de la interfaz de usuario de la verificación.
  • Varias pruebas pueden usar el mismo repositorio de objetos porque es independiente de los casos de prueba.
  • El código se vuelve reutilizable.

P.8) ¿Qué es una fábrica de páginas?

Page Factory ofrece un método mejorado para ejecutar el modelo de objetos de página mediante el uso eficiente de la memoria, y la ejecución se realiza mediante un diseño orientado a objetos.

Implementación de POM
Con fábrica de páginas Sin fábrica de páginas
Utiliza por () Utiliza @FindBy()
No se requieren importaciones fábrica de páginas de importaciones
Sin almacenamiento en caché La búsqueda en caché es más rápida

Page Factory inicializa los elementos del objeto de página o crea instancias de los objetos de página en sí. También se pueden producir anotaciones para elementos. De hecho, es una mejor manera ya que las propiedades descriptivas pueden no ser lo suficientemente expresivas para diferenciar un objeto de otro.

Si se usa POM sin una fábrica de páginas, en lugar de tener que usar 'FindElements', @FindBy se usa para buscar WebElement e initElements se usa para inicializar elementos web de la clase Page Factory.

@FindBy puede aceptar atributos como nombre de etiqueta, nombre, texto de enlace parcial, texto de enlace, id, nombre de clase, css y xpath.

P.9) ¿Cómo se logra la sincronización en WebDriver? O cuéntenos sobre los diferentes tipos de instrucciones de espera Selenium Web Driver.

Puede encontrar dos declaraciones de espera en el controlador web de Selenium, a saber, Espera implícita y Espera explícita.

La espera implícita ordena al WebDriver que espere un poco sondeando el DOM. Está presente durante toda la vida de la instancia del controlador web, una vez que se declara la espera implícita. El valor preestablecido es cero. Si lo establece en más de cero, el comportamiento sondeará el DOM de forma regular en función de la implementación del controlador.

La espera explícita ordena a la ejecución que espere un poco hasta que se alcance una condición como:

  • elementToBeClickable
  • presenciaOfElementLocated
  • elemento a ser seleccionado

Leer: Preguntas y respuestas de la entrevista de primavera

10) ¿Cuál es el uso de JavaScriptExecutor?

Puede ejecutar JavaScript a través de Selenium Websriver usando JavaScriptExecutor. Es una interfaz que ofrece este mecanismo. Brinda métodos como "executescript" y "executeAsyncScript" para ejecutar JavaScript en la condición del marco o ventana elegido actualmente. Un ejemplo de eso es:

JavascriptExecutor js = (JavascriptExecutor) controlador;

js.executeScript(Script,Argumentos);

P.11) ¿Qué función le permite desplazarse hacia abajo en una página usando JavaScript en Selenium?

La función window.scrollBy() lo ayuda a desplazarse hacia abajo en la página usando JavaScript en Selenium. Por ejemplo:

(controlador (JavascriptExecutor)).executeScript(“window.scrollBy(0,500”);

P.12) ¿Cómo maneja las acciones del mouse y el teclado usando Selenium?

Las acciones especiales del mouse y el teclado se manejan mediante la API de interacciones avanzadas del usuario. Se compone de las acciones y las clases de acción que se requieren para realizar estos eventos. Los eventos de mouse y teclado más utilizados dados por la clase Action son:

dragAndDrop(): este evento hace clic y mantiene presionado en la posición del elemento de origen, se mueve.

fuente, destino (): se mueve a la posición del elemento de destino y suelta el mouse.

clickAndHold(): Hace clic en la ubicación actual del mouse.

P.13) ¿Cuáles son los distintos tipos de marcos de Selenium?

Los diversos tipos de marcos de Selenium son:

  • Marco basado en palabras clave: en este marco, las operaciones y las instrucciones se escriben en un archivo separado como Excel.
  • Marco basado en datos: en este marco, los datos de prueba completos se toman de algunos archivos de origen externos como XML, Excel, CSV o alguna otra tabla de base de datos.
  • Marco híbrido: este marco es una combinación del marco basado en palabras clave y el marco basado en datos.

P.14) Nombre algunos archivos que sirven como fuente de datos para varios marcos de trabajo de Selenium.

Pueden ser un archivo XML, Excel, CSV o incluso un archivo de texto.

P.15) ¿Qué es Selenese?

Selenese es el grupo de comandos de selenio para probar una aplicación web. Los desarrolladores pueden usar aserciones, acciones y accesores. Las afirmaciones se utilizan como puntos de control. Las acciones son para ejecutar operaciones y los descriptores de acceso se utilizan para almacenar el valor de una variable.

P.16) ¿Cuál es la principal diferencia entre una fábrica de páginas y un modelo de objetos de página (POM)?

Una pregunta común de la entrevista de selenio. Una fábrica de páginas es un método para inicializar elementos web dentro del objeto de la página en la creación de la instancia. Por otro lado, el modelo de objeto de página es una clase que establece la página web y mantiene sus funcionalidades.

P.17) ¿Selenium admite el manejo de ventanas emergentes?

No. Selenium no admite el manejo de ventanas emergentes. Una alerta, que es una ventana emergente, muestra un mensaje de advertencia en la pantalla. Puede lograr esto usando algunos métodos como:

Void dismiss(): cuando se hace clic en el botón cancelar en el cuadro de alerta, se llama a este método.

Void accept (): cuando se hace clic en el botón 'Aceptar' de la alerta, se llama a este método.

String getText(): si desea capturar el mensaje de alerta, debe llamar a este método.

Void sendKeys(String stringToSed): si desea enviar alguna información al cuadro de alerta, debe llamar a este método.

Leer: Reaccionar preguntas y respuestas de la entrevista

P.18) Explique la clase de robot

Una clase Robot da control sobre los dispositivos de teclado y ratón.

Los métodos comprenden:

  • KeyPress(): invocado en el evento en el que desea presionar una tecla.
  • KeyRelease(): Llamado en el evento para soltar la tecla presionada.
  • MouseMove(): Llamado en caso de que tenga que mover el puntero del mouse en las coordenadas X e Y.
  • MousePress(): Llamado en el evento cuando presiona el botón izquierdo del mouse.
  • MouseMove(): Llamado en caso de soltar el botón presionado del mouse.

P.19) ¿Cómo manejar muchas ventanas en Selenium?

El identificador de ventana es un identificador especial que tiene la dirección de todas las ventanas. Sirve como un puntero a una ventana que devuelve el valor de la cadena.

  • get.windowhandle(): Obtiene el identificador de ventana actual.
  • get.windowhandles(): Obtiene los identificadores de todas las ventanas abiertas.
  • cambiar a: ayuda a cambiar de ventana.
  • set: establece los identificadores de la ventana, que tiene la forma de una cadena.
  • acción: ayuda a ejecutar ciertas acciones en las ventanas.

P.20) ¿Qué son los Oyentes?

La interfaz que cambia el comportamiento del sistema se llama oyentes en Selenium. Permiten personalizaciones de registros e informes. Son de dos tipos: oyentes TestNG y oyentes Webdriver.

P.21) Explique los comandos Assert y Verify

Afirmar: Se utiliza una aserción para diferenciar entre el resultado real y el resultado esperado.

Verificar: las ejecuciones de prueba no se pausan sin importar si la condición de verificación es verdadera o falsa.

P.22) ¿Cómo se navega hacia adelante y hacia atrás en una página web?

Es una de las preguntas de entrevista de selenio más comunes.

Puede usar los métodos a continuación para navegar hacia adelante y hacia atrás.

conductor.navegar.adelante

controlador.administrar.navegar

controlador.administrar.atrás

conductor.navegar.a(“url”)

P.23) ¿Cómo enviar la tecla ALT/SHIFT/CONTROL en Selenium WebDriver?

Por lo general, al usar teclas como ALT, Shift o Control, las combinamos con otras teclas para activar una función. No podemos simplemente hacer clic en ellos solos. Necesitamos definir dos métodos con el propósito de retener estas claves mientras las siguientes claves están

presionado: keyUp(modifier_key) y keyDown(modifier_key)

Parámetros: Modifier_key (keys.ALT o Keys.SHIFT o Keys.CONTROL)

Objetivo: El propósito es que realiza una pulsación de tecla modificadora sin soltar la tecla modificadora. Las siguientes interacciones pueden suponer que se mantiene presionado.

Parámetros: Modifier_key (keys.ALT o Keys.SHIFT o Keys.CONTROL)

Objetivo: La finalidad es que realice una liberación de llave.

Entonces, con una combinación de estos dos métodos, podemos capturar la función especial de una tecla en particular.

P.24) ¿Cómo tomamos capturas de pantalla en Selenium WebDriver?

La función TakeScreenshot ayuda a tomar una captura de pantalla en Selenium Webdriver. Además, puede guardar la captura de pantalla utilizando el método getScreenshotAs().

Archivo scrFile = ((TakeScreenshot)driver).getScreenshotAs(outputType.FILE);

P. 25) ¿Podemos establecer el tamaño de la ventana del navegador usando Selenium? Si es así, ¿cómo?

Si. Si desea maximizar el tamaño de la ventana del navegador, debe usar el código

controlador.administrar().ventana().maximizar();

Si desea cambiar el tamaño de la ventana actual a una dimensión específica, debe utilizar el método setSize(). Por ejemplo:

System.out.println(driver.manage().window().getSize());

Dimensión d = nueva Dimensión (420,600);

controlador.manage().window().setSize(d);

Si desea configurar la ventana a un tamaño particular, debe usar el método window.resizeTo().

Por ejemplo:

((JavascriptExecutor)controlador).executeScript(“window.resizeTo(1024, 768);”);

P.26) ¿Cómo seleccionar un valor del menú desplegable? ¿Cómo manejar un menú desplegable?

Lo más probable es que le hagan una pregunta sobre el menú desplegable y la selección de valores, ya que también es un poco complicado y técnico.

El detalle más crucial que debe saber es que para trabajar con un menú desplegable en Selenium, es importante usar la etiqueta html: 'seleccionar'. No puede manejar los menús desplegables sin usar la etiqueta de selección. Echa un vistazo al código a continuación:

<seleccione id=”mySelect”>

<option value=”option1″>Tortas</option>

<option value=”option2″>Chocolates</option>

<option value=”option3″> Caramelos</option>

</seleccionar>

En el código anterior, se usa una etiqueta HTML 'seleccionar' para definir un elemento desplegable. El ID de la etiqueta de selección aquí es myselect. Hemos dado tres opciones en el menú desplegable: pasteles, chocolates y dulces. Puede ver que cada una de estas opciones tiene un atributo de valor adjunto. Por ejemplo, para Cake, el valor es Option1, para Chocolates es Option2 y para Candies, es Option3.

Para elegir un valor, debe:

Identifique el elemento html 'seleccionar' usando findelement()

Ejemplo:

WebElement mySelectElement = driver.findElement(By.id(“mySelect”));

Seleccionar menú desplegable = nuevo Seleccionar (mySelectElement);

Elija una opción de ese elemento desplegable.

Para elegir una opción de ese menú desplegable, hay tres formas:

desplegable.selectByVisibleText(“Chocolates”); → Elegir una opción por el texto que se ve.

desplegable.selectByIndex(“1”); → Elegir una opción utilizando el número de índice de esa opción.

desplegable.selectByValue(“opción2”); → Elegir una opción usando el valor de esa opción.

Tenga en cuenta que en todos los casos, la opción "Chocolates" está seleccionada en el menú desplegable. Los puntos 1 y 3 son obvios y el punto dos; decimos “1” porque la indexación comienza desde cero.

Leer: Principales preguntas y respuestas de la entrevista de Nagios

P.27) ¿Cómo salta a una nueva pestaña que se abre después de hacer clic en un enlace?

Al hacer clic en un enlace en una página web, debe usar el comando switchTo() para cambiar el enfoque de Webdriver. Ejemplo: controlador.switchTo().window();

donde 'windowName' es el nombre de la ventana a la que desea cambiar su enfoque.

Si no tiene el nombre de la ventana, puede usar el comando driver.getWindowHandle() para obtener el nombre de todas las ventanas que inició WebDriver. Recuerde, nunca le dará los nombres de aquellas ventanas que Webdriver no inició.

Al obtener el nombre, debe ejecutar un bucle para llegar a esa ventana. Aquí hay un ejemplo:

String handle= controlador.getWindowHandle();

para (controlador de cadena: driver.getWindowHandles())

{

driver.switchTo().window(handle);

}

P.28) ¿Cómo se puede cargar un archivo en Selenium WebDriver?

El comando element.send_keys(ruta del archivo) se usa para cargar un archivo en Selenium Webdriver. Pero antes de eso, debe usar la etiqueta html: 'entrada' donde el tipo de atributo debe ser 'archivo'. Aquí hay un ejemplo para entenderlo mejor:

<input type=”file” name=”my_uploaded_file” size=”50″ class=”pole_plik”>

elemento = conductor.find_element_by_id(”mi_archivo_cargado”)

elemento.send_keys(“C:miarchivo.txt”)

P.29) ¿Cuál es la importancia de testng.xml?

Si está entrevistando para Selenium, seguramente sabe la importancia de las pruebas. Selenium no admite la generación del informe ni la gestión de casos de prueba. Por lo tanto, usamos el marco TestNG con Selenium. Es mucho más avanzado en comparación con Junit, y es más fácil implementar anotaciones, lo que hace que el marco TestNG sea la elección con Selenium Webdriver.

Puede definir los conjuntos de pruebas y la agrupación de clases de prueba en TestNG, tomando comandos del archivo testing.xml. Está representado en un archivo XML y no en un conjunto de pruebas dentro del código fuente de prueba porque el conjunto es una característica de ejecución. Un conjunto de pruebas es un grupo o colección de casos de prueba.

El archivo testng.xml debe contener el nombre de todos los métodos y clases que desea ejecutar como parte de ese flujo de ejecución.

Algunas de las ventajas de usar el archivo testng.xml son:

  • Permite la ejecución de múltiples casos de prueba de múltiples clases.
  • Permite la ejecución de casos de prueba en grupos, donde una sola prueba puede pertenecer a múltiples grupos.
  • Permite la ejecución en paralelo.

P. 30) Explique los proveedores de datos en TestNG. ¿Es posible llamar a un único método de proveedor de datos para múltiples funciones y clases?

Una de las preguntas avanzadas de la entrevista de selenio. DataProvider es una función de TestNG que permite a los desarrolladores escribir pruebas DataDriven. Admite pruebas basadas en datos, lo que significa que el mismo método de prueba puede ejecutarse varias veces con diferentes conjuntos de datos. DataProvider es solo un método para pasar parámetros al método de prueba.

@DataProvider es un método para proporcionar datos para un método de prueba. El método anotado debe devolver un Objeto[] donde cada Objeto[] se puede asignar a la lista de parámetros del método de prueba.

Si. Es posible llamar a un solo método de proveedor de datos para múltiples funciones y clases. El mismo DataProvider se puede usar en varias funciones y clases declarando DataProvider en una clase separada y luego usándolo nuevamente en varias clases.

P. 31) ¿Cuáles son las características de TestNG?

  • Antes y después de las anotaciones
  • Configuración de prueba basada en XML
  • Ejecución multiproceso
  • API abierta
  • Mejores informes
  • Pruebas basadas en datos
  • Grupos dependientes.
  • métodos dependientes

Obtenga un curso de desarrollo de software de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.

Conclusión

Al llegar al final de la guía de preguntas y respuestas de la entrevista de Selenium , esperamos que esto lo ayude a conseguir su trabajo. Las preguntas de entrevista de Selenium para personas con experiencia son más técnicas, pero con una competencia feroz por los trabajos, siempre es bueno estar bien preparado para una entrevista.

Si está interesado en aprender Selenium, DevOps y todo lo relacionado con el desarrollo Full Stack, consulte el Programa Executive PG de IIIT-B & upGrad en el Programa de desarrollo de software Full Stack.

Prepárate para una carrera del futuro

Aplicar ahora para Maestría en Ingeniería de Software