71 perguntas críticas da entrevista Selenium não respondidas

Neste tutorial de perguntas da entrevista com selênio, cobriremos todas as questões críticas da entrevista com Selenium, juntamente com questões de entrevista da estrutura de Automação do Selênio. Este tutorial é dividido em três segmentos:

Perguntas da entrevista sobre o Selenium Framework

Perguntas avançadas da entrevista sobre selênio

Perguntas intermediárias da entrevista com selênio

NOTA : O foco deste tutorial de Perguntas e Respostas da entrevista do Selenium é discutir o questionário mais crítico e complexo, pois você já deve estar ciente dos questionários básicos.

Inicialmente, começaremos com as perguntas e respostas da entrevista Advance Selenium Framework e, em seguida, avançaremos com as perguntas e respostas Críticas / Avançadas da entrevista com selênio e, por fim, terminaremos este tutorial com níveis intermediários para que você possa se preparar bem.

Perguntas da entrevista do selênio
Perguntas da entrevista do selênio

Perguntas da entrevista sobre o Selenium Framework

Perguntas da entrevista avançada sobre o Selenium

Perguntas intermediárias da entrevista com selênio

Perguntas da entrevista sobre o Selenium Framework: 

Quantos tipos populares de estrutura Selenium existem?

Existem quatro tipos diferentes de estrutura Selenium, que são: 

Quantas abordagens diferentes existem para projetar a estrutura do Modelo de Objeto de Página?

O que é a fábrica da página em selênio?

PageFactory é uma classe da biblioteca Selenium de um pacote chamado org.openqa.selenium.support que ajuda a projetar o padrão de design de objeto de página na estrutura do modelo de objeto de página, que tem poucas implementações, como:

Qual é a principal diferença de design entre o Modelo de objeto de página clássico e o Modelo de objeto de página personalizado?

Portanto, cada página da web deve ter uma interface para armazenar localizadores e 1 classe para as operações da web no nível da página e suas afirmações de respeito.

Qual é o princípio de design do Page Object Model Framework?

O princípio de design da estrutura do modelo de objeto de página é baseado em princípios ou conceitos, que são: 

Portanto, todas as ações da página (diferentes operações da funcionalidade da página da web) residem nas respectivas classes da página.

Mencionar as principais diferenças entre o Modelo de Objeto de Página e o Modelo de Objeto de Página Híbrido?

A diferença entre o Modelo de Objeto de Página e o Modelo de Objeto de Página Híbrido é que o Modelo de Objeto de Página Híbrido é baseado no design da estrutura do Modelo de Objeto de Página, juntamente com os recursos abrangentes do Data-Driven Framework e oferece suporte a uma ampla variedade de Utilitários de Operações de Dados, como abaixo : 

Qual é o analisador de linguagem usado na estrutura Cucumber -BDD?

O analisador de linguagem usado na estrutura Cucumber -BDD é o Gherkin.

Qual é a linguagem Gherkin?

Gherkin é DSL (Domain Specific Language) e um idioma semelhante ao inglês, que é muito legível e compreensível (ou seja, dar (), quando (), então (), etc.)

O que você quer dizer com given () em Gherkin?

 O método dado () afirma que alguma situação ou cenário é dado ou declarado.

 O que você quer dizer com quando () em Gherkin?

Quando () significa quando você realiza algumas operações.

O que você quer dizer com then () em Gherkin?

then () é usado como asserções após as operações serem realizadas por given (). when ().

Qual ferramenta de CI você usa como parte da estrutura?

Usamos Jenkins (principalmente) como uma ferramenta de CI de código aberto.

Qual ferramenta de construção você usa como parte da estrutura?

Usamos ferramentas de construção como Maven / Gradle / ant (que era usado anteriormente).

Qual é a principal diferença entre maven e Gradle?

Gradle é a versão avançada do que o maven executa e, junto com isso, também podemos criar tarefas (como o recurso que estava disponível no ANT), para que possamos considerar em alto nível: 

Gradle = >> Maven + Ant 

Como parte do Selenium C #, usamos Gallio como uma ferramenta de construção. 

Qual é a estrutura de teste de unidade que usamos como parte da estrutura de automação do Selenium?

Usamos principalmente TestNG / JUnit (JUnit é menos usado atualmente) como parte da estrutura de teste de unidade durante a construção da estrutura de automação com Selenium. 

Como parte da estrutura Selenium C #, usamos NUnit / MbUnit como estrutura de teste de unidade.

Qual abordagem pode ser levada em consideração ao projetar as ferramentas de relatório como parte da estrutura do Selenium?

Existem várias abordagens de relatórios que podemos adotar ao projetar a estrutura:

Além dessa integração de ferramentas de relatórios de código aberto, também podemos optar por alguns recursos de relatórios avançados ou painel para construir com as tecnologias e ferramentas abaixo:

Como você usa ELK para construir o painel de relatórios com Selenium Framework:

Há um princípio básico de design que está sendo usado para projetar o painel de automação, que são: 

Como você constrói um relatório personalizado em HTML?

Você pode usar diferentes interfaces de ouvintes e repórteres fornecidas pelo TestNg para registrar os eventos e seus respectivos conjuntos de dados e criar HTML usando esses conjuntos de dados e as marcas HTML nos utilitários de relatório.

Quais são os desafios que você enfrentou ao desenvolver uma estrutura?

Existem diferentes desafios que você pode mencionar de acordo com sua experiência durante o desenvolvimento da estrutura, por exemplo: 

Mencionar quais componentes do Selenium você usou em sua estrutura do Selenium?

Você pode mencionar dependendo de sua estrutura.

Qual é o fluxo de sua estrutura de automação?

Você pode mencionar o fluxo de execução do seu framework dependendo do seu fluxo do Framework e das ferramentas que você usou; abaixo está um exemplo que você pode mencionar:

CI (Jenkins) → Ferramentas de construção (Maven /Gradle) → Estrutura de teste de unidade (TestNg) → TestNg.xml - >> TestClasses → BaseTest (cada classe de teste estende a classe Base como baseTest onde @beforeClass / @ BeforeSuite @afterClass etc sai) -> TestMethods → PageClasses → Métodos de página → WebUtilities ( classe reutilizável para os utilitários WebAction) - >> Reporting Utils 

O que você entende por estrutura baseada em dados e onde usamos uma estrutura baseada em dados?

Uma estrutura baseada em dados é basicamente uma estrutura conduzida por dados. Dito isto, em que a aplicação ou o tipo de aplicação onde os mesmos casos de teste ou cenários são executados várias vezes com os diferentes conjuntos de dados ou a fonte ou Dados é muito vasto como no caso em que precisamos interagir uma variedade de Nas fontes de dados, usamos a estrutura baseada em dados. 

As diferentes fontes de dados podem ser: 

Como explicar a estrutura de automação de selênio em uma entrevista?

 Existem diferentes abordagens que você pode adotar para explicar a estrutura de automação do selênio em uma entrevista; a melhor abordagem possível poderia ser a abordagem modular, que consiste em dividir a explicação em diferentes módulos separados, tais como:

Vamos discutir em detalhes: 

Tipo de estrutura, chave e recursos exclusivos da estrutura:

Você precisa mencionar o tipo de estrutura, como Estrutura Híbrida, estrutura de modelo de objeto de página, estrutura híbrida de Modelo de Objeto de Página, etc. 

Você precisa mencionar os recursos exclusivos da estrutura, como por exemplo:

Ferramentas e tecnologias usadas na estrutura do Selenium:

Você pode mencionar as ferramentas e tecnologias usadas durante o desenvolvimento da estrutura, como:

O fluxo de execução do Selenium Framework:

Você pode mencionar o fluxo de execução do framework, ou seja, como você aciona as suítes de teste e como ele flui para os casos / métodos de teste e até os Utilitários do Framework como webutils, utilitários de dados, etc. Você pode consultar a pergunta acima onde discutimos como explicar o fluxo da execução do framework Selenium.

Diferentes cenários críticos tratados por sua estrutura:

Neste módulo, você pode discutir os recursos críticos que foram automatizados como parte da automação de seu aplicativo com sua estrutura. Pode haver muitos casos de uso ou recursos que você pode mencionar aqui, como: 

Como projetar cenários de registro na estrutura Selenium?

Você pode usar log4j para registro ou pode usar registro em tempo real e implementação de painel de depuração com Graylog, que basicamente usa ElasticSearch no backend para registro em tempo real e detalhes de depuração.

Quais são os padrões de design que você usou ao projetar a estrutura?

Você pode usar diferentes padrões de design de acordo com a necessidade e design da estrutura de automação, como:

Perguntas críticas ou avançadas da entrevista com o selênio:

De quantas maneiras você pode executar seu script de automação paralelamente?

Existem várias maneiras e abordagens pelas quais você pode executar seus scripts de teste paralelamente, como: 

Maven:

Usando o plugin surefire: 

5

 verdadeiro

Aqui a contagem de bifurcações representa o número de contagem de threads paralelos.

Gradle: 

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

Qual é a diferença entre os métodos setSpeed ​​() e sleep ()?

O método setSpeed ​​() no Selenium basicamente define a velocidade de execução de cada ação / comando. 

Então, digamos que se você definirSpeed ​​(“2000”), cada linha de execução será atrasada em 2000 milissegundos. 

Por outro lado, Thread.sleep () apresentará um atraso de 3000 milissegundos (suspenderá a thread para a operação específica). 

Portanto, sleep () é aplicado a 1 operação; por outro lado, setSpeed ​​() introduz o atraso para cada operação e, assim, define a velocidade de execução.  

Como verificar a presença de um ScrollBar com Selenium? 

Para verificar a barra de rolagem horizontal na página da web com Selenium, usamos Javascriptexecutor da maneira abaixo: 

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

Para verificar a barra de rolagem vertical na página da Web usando Selenium webdriver também precisamos usar Javascriptexecutor

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

Escreva o código para lidar com qualquer elemento da Web oculto no selenium webdriver?

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

Mencionou diferentes abordagens para lidar com uma janela pop-up usando o selenium webdriver?

Você pode usar as abordagens abaixo para lidar com aplicativos baseados em janela, como janela pop-up: 

Qual é a interface pai do WebDriver?

Contexto de pesquisa

Mencionou as principais diferenças entre POI e JXL Jars?

O POI suporta formatação condicional, formatação rich text ou formato xlsx, mas, por outro lado, JXL não oferece suporte a nenhum desses recursos.

A biblioteca POI é mantida e atualizada em comparação com JXL.

Como você lida com as latências da rede usando Selenium?

Podemos usar o seguinte para lidar com a latência da rede usando no Selenium: 

Driver.manage.pageloadingtime

Quais são as abordagens que você usaria para lidar com o teste de conteúdo Ajax com Selenium WebDriver?

AJAX é basicamente Javascript e XML assíncrono. Toda a comunicação do aplicativo baseado em AJAX é baseada em chamadas assíncronas, 

que permitem que qualquer evento seja realizado sem atualizar a página da web. Cada operação pode ser realizada independentemente de outros eventos.

Quais são os desafios ao trabalhar com chamadas AJAX em Selenium WebDriverName?

Para trabalhar com o aplicativo AJAX, você pode precisar usar esperas para os casos de uso mencionados acima: 

Qual é a abordagem para trabalhar com Proxy no Selenium Webdriver?

Existem duas abordagens diferentes com as quais você pode lidar com proxy no Selenium Webdriver: 

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

Mencionou as maneiras de conseguir a sincronização no WebDriver?

Podemos lidar com a sincronização no webdriver Selenium usando diferentes mecanismos de espera: 

Mencionar as principais diferenças entre TestNg @BeforeTest e @BeforeMethod? 

Em TestNg @BeforeTest e @BeoreMethod tem diferentes aspectos, são:

Listar os diferentes tipos de APIs WebDriver presentes no Selenium?

De quantas maneiras você pode alcançar a execução sem cabeça com o Selenium?

Podemos usar os drivers abaixo para obter automação sem cabeça com Selenium: 

O que é Fluent Wait In Selenium WebDriver?

Com FluentWait, você pode definir um período máximo de tempo (digamos 3 minutos) para esperar para atender a uma condição específica e, durante esse tempo, você pesquisará ou verificará continuamente com uma certa frequência (unidade de tempo muito pequena, digamos 3 segundos) para verificar.

Se a condição for atendida, ele retornará verdadeiro e, se não, lançará uma exceção “ElementNotVisibleException”.

A sintaxe de fluentwait no Selenium é:

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

Conte-nos algumas exceções do Selenium que você encontrou ao trabalhar com o `Selenium WebDriver?

Como você exclui cookies no Selenium?

O comando para excluir os cookies no Selenium é: 

driver.manage().deleteAllCookies();

Explique a abordagem de como você lê a variável javascript no selenium webdriver?

Precisamos usar JavascriptExecutor para fazer isso. 

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

Como executar a operação do navegador de ampliação e redução no Selenium?

Podemos realizar a operação de aumentar e diminuir o zoom no Selenium usando duas abordagens diferentes, como: 

Amplie usando a classe Robot em selênio

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

Diminua o zoom usando a classe Robot em selênio


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

Amplie usando a classe Keys em selênio

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

Diminua o zoom usando a classe Robot em selênio

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

Como limpar um campo de selênio sem usar um método clear ()?

Podemos limpar qualquer campo sem usar o método clear () na abordagem abaixo: 

Podemos usar a classe Keys no Selenium para conseguir o mesmo: 

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

Como executar novamente os casos de teste com falha no selênio?

Podemos executar novamente os casos de teste com falha no Selenium nas duas abordagens a seguir:

Com TestNG-failed.xml gerado automaticamente:

Após a execução do teste (executado a partir de testng.xml), TestNG gera automaticamente TestNG-failed.xml; você pode executar novamente o mesmo XML para executar SOMENTE os testes com falha.

Implementando Interface IRetryAnalyzer de testNg :

Implementando a interface IRetryAnalyzer, podemos reexecutar automaticamente os casos de teste com falha com 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;
   }
}

Como destacar um elemento no Selenium WebDriver?

Podemos usar JavascriptExecutor para definir a cor do elemento da Web mencionando o elemento.


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

Como clicar duas vezes no selênio?

Nós podemos usar o Aula de ações no Selenium para realizar as operações do DoubleClick da maneira abaixo. O método abaixo recebe um argumento no qual você deve executar o 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}

Como rolar em selênio?

Precisamos usar Javascript para realizar a rolagem, e o método abaixo fornece uma abordagem avançada para rolar no elemento até que o elemento esteja visível, que é rolar para a visualização: 

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

  }

}

Como obter todos os links da página em selênio?

Podemos usar By.tagName (“a”) para buscar todos os links que estão disponíveis na página, pois link se refere à tag chamada como a; o método segue da maneira abaixo: 

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

}

Como encontrar o número de iframes em uma página no Selenium?

Podemos usar o método abaixo para encontrar o número de iframes em uma página no 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;
  }

}

Como alternar para o quadro padrão no webdriver selênio?

Podemos usar o método switchTo (). DefaultContent () para alternar para o quadro padrão no 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 ");
  }
}

Como lidar com guias em selênio?

Podemos usar uma Lista para armazenar todas as guias disponíveis e usar driver.getWindowHandles () para armazenar as guias e, uma vez depois disso, podemos lidar com as guias uma por uma na abordagem abaixo, como: 

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

  }



}

Perguntas intermediárias da entrevista com selênio

O WebDriver é uma classe ou uma interface?

Webdriver é uma interface onde todas as classes de driver, como ChromeDriver, FirefoxDriver, criam um objeto e fazem referência à referência da interface do Webdriver.

Qual é mais rápido, XPath ou CSS?

CSS é mais rápido que XPath. 

Por que CSS é mais rápido que XPath?

Cada mecanismo de navegador é diferente e, portanto, a estratégia de análise e a implementação do mecanismo são diferentes por meio do XPath escrito. É por isso que a análise XPath se torna inconsistente às vezes; por exemplo, o IE não tem sua própria implementação de mecanismo para analisar XPATH; portanto, o Selenium injeta seu próprio mecanismo XPath nativo para analisar XPATH no IE. 

O que são navegadores com privilégios avançados?

Quando os navegadores são abertos com algumas configurações predefinidas (instância com modo privilegiado especial), como com determinados perfis ou certificados, é chamado de sessões de navegadores com privilégios elevados. 

Nós podemos iniciar um navegador com Selenium com Profiling ou definir certificados para os mesmos fins.

O que é o Selenium do navegador sem interface e como realizamos o teste do navegador sem interface?

  Um navegador sem cabeça é um programa de simulação para o navegador em que não temos uma IU, mas ainda podemos executar o aplicativo em teste no modo invisível 

 e execute a operação web desejada em segundo plano.

 Usamos drivers de navegador HeadLess, como driver HTMLUNIT ou driver phantomJS, para realizar testes de navegador sem comando.

Selênio vs. titereiro? 

Existem várias diferenças entre o Selenium e o titereiro (que é uma nova ferramenta comparada ao Selenium e desenvolvida pelo Google Chrome DEV)

Discutiremos aqui a comparação entre Selenium VS Puppeteer em diferentes aspectos: 

HardAssert vs SoftAssert?

Ambas as abordagens de asserção são da TestNg, e cada uma delas tem seus respectivos prós e contras

 Quando você está em circunstâncias em que precisa ter uma afirmação que seja óbvia, ou seja, sem essa etapa, as etapas restantes do script não fazem sentido para serem executadas, então você pode colocar Hard Assert lá.

 Como definir o tamanho da janela em selênio?

Podemos criar um objeto da classe Dimension e passar esse objeto para o método setSize (): 

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

Qual é o sistema de controle de versão que você usa ao trabalhar com o Selenium?

Você pode mencionar qualquer VCS que usar, como Github, SVN, etc.

Como clonar um repositório git?

Podemos clonar o repositório git usando:

Git clone repo

Como obter o código do repositório Git?

Git pull remoteRepoURL branchName

Como enviar o código para o git repo?

Git push remoteURL branchName

Como configurar o controle remoto? 

git remote add ProvideARemoteName remoetURL

Como verificar os controles remotos disponíveis?

Git remote -v 

Como verificar em qual URL remoto você está atualmente? 

git config --get remote.origin.url

Como você pode integrar sua estrutura ao Jenkins?

Como parte do framework Selenium Automation, estamos usando ferramentas de compilação (como Maven / Gradle), e podemos criar um Jenkins Job e conectar o Maven / Gradle fornecendo a configuração com VCS (ou seja, Github, etc.)

Quais são as desvantagens do Sikuli?

Como realizar testes de banco de dados usando selênio?

Podemos realizar testes de banco de dados usando selênio na abordagem modular abaixo: 

Aqui está o snippet de código para as etapas acima: 

Configuração da conexão do banco de dados Selenium com JAVA JDBC e cria uma instrução 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();

       }


   }

Use a instrução para consultar o banco de dados com 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();
   }
}

Fechando a conexão de dados: 

Este passo é muito importante; caso contrário, podemos acabar criando várias conexões de banco de dados sem fechá-las após o uso, o que pode causar vários problemas. 

Aqui está o snippet de código para o mesmo: 

@AfterTest
public void tearDown() throws Exception {

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

Como verificar a cor de fundo e a cor de um WebElement usando Selenium? 

Precisamos usar um método chamado getCssValue (“color”) para recuperar a cor de um elemento da web e getCssValue (“background-color”) para puxar a cor de fundo de um elemento da web.

Aqui está o snippet de código: 

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

Como verificar o tamanho da fonte de um WebElement usando o webdriver Selenium? 

Podemos usar o método chamado getCssValue (“font-size”)

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

Como verificar o tipo de fonte de um elemento da web no Selenium Webdriver? 

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

Como obter texto de dica de ferramenta em selênio?

Obter o texto da dica de ferramenta de um WebElement nada mais é do que obter o atributo title do Webelement da maneira abaixo: 

public String getToolTipData(By locator){

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

O que é StaleElementException? 

Stale Element significa que quando um elemento da Web não está mais anexado ao DOM / WebPage que estava presente anteriormente. Nesse caso, o Selenium lança um staleelementexception.

Isso pode acontecer por vários motivos, como devido a chamadas AJAX ou JavaScript que mudam o estado

do elemento o torna indisponível / desanexado do DOM.  

Conclusão : Com isso, concluímos as perguntas da entrevista Conjuntos de críticos do Selênio, cobrindo as questões da entrevista da Estrutura do Selênio. Leia aqui para obter mais detalhes conceitos de selênio para entender a arquitetura do Selenium.

Deixe um comentário