top 25 selenium webdriver commands that you should know
Principais comandos do Selenium WebDriver - Um guia fenomenal para testadores de automação
Selenium WebDriver é uma das ferramentas de automação de sites de código aberto mais populares. A maioria dos meus colegas testadores de automação prefere a combinação de WebDriver com Java.
Neste tutorial, discutirei 25 comandos Selenium WebDriver usados rotineiramente, juntamente com sua sintaxe em questão e exemplos simples para seu fácil entendimento.
O que você aprenderá:
- Tipos de comandos no WebDriver
- Os 7 principais comandos do Selenium com detalhes
- Lista de 25 comandos e exemplos mais populares do WebDriver
- # 1) get ()
- # 2) getCurrentUrl ()
- # 3) findElement (por, por) e clique em ()
- # 4) isEnabled ()
- # 5) findElement (por, por) com sendKeys ()
- # 6) findElement (By, by) com getText ()
- # 7) Enviar ()
- # 8) findElements (por, por)
- # 9) findElements (por, por) com tamanho ()
- # 10) pageLoadTimeout (tempo, unidade)
- # 11) implicitlyWait ()
- # 12) até () e visibilidadeOfElementLocated ()
- # 13) até () e alertIsPresent ()
- # 14) getTitle ()
- # 15) Selecione
- # 16) navegar ()
- # 17) getScreenshotAs ()
- # 18) moveToElement ()
- # 19) dragAndDrop ()
- # 20) switchTo () e accept (), dispense () e sendKeys ()
- # 21) getWindowHandle () e getWindowHandles ()
- # 22) getConnection ()
- # 23) ENTÃO
- # 24) assertEquals (), assertNotEquals (), assertTrue () e assertFalse ()
- # 25) fechar () e sair ()
- Conclusão
- Leitura recomendada
Tipos de comandos no WebDriver
No último tutorial do Selenium , discutimos o diferentes tipos de alertas encontrados durante o teste de aplicativos baseados na web e suas formas eficazes de tratamento. Discutimos longamente ambos os tipos de alertas, ou seja, “alertas baseados na Web” e “alertas baseados em janela”. Também o deixamos familiarizado com outro utilitário baseado em Java denominado “Robot Class” para lidar com pop-up baseado em Windows.
Avançando em esta série de tutoriais do Selenium WebDriver , estaríamos pressionando vários comandos Selenium WebDriver comumente usados . Discutiremos de forma breve e precisa cada um desses comandos do Selenium para torná-lo capaz de usar esses comandos com eficácia sempre que surgir a situação.
Todo arquivo de trabalho Java de automação começa com a criação de uma referência de navegador da web que desejamos usar, conforme mencionado na sintaxe abaixo.
Existem vários métodos disponíveis na interface do Webdriver. Esses métodos são acessados usando a variável de instância motorista em um formato simples driver.methodName (); . Todos esses projetos de automação incluem chamar esses métodos e comparar e avaliar o que eles realmente retornam.
Em termos simples, podemos geralmente classificar os comandos do Webdriver como:
- Comandos do navegador,
- Obtenha comandos,
- Comandos de navegação,
- Comandos do elemento da web,
- Comandos de ação e
- Comandos de resultado.
No contexto do teste manual, o resultado de um teste, PASSA ou FALHA, é decidido a partir dos comandos de resultado, que geralmente comparam os resultados esperados e reais e o resto são etapas do caso de teste.
Os 7 principais comandos do Selenium com detalhes
Para se ter uma ideia aproximada, estaríamos discutindo os seguintes comandos Selenium WebDriver e suas diferentes versões:
- obter() métodos
- Localizando links por Texto do link () e parcialLinkText ()
- Seleção de vários itens em uma lista suspensa
- Enviando um formulário
- Tratamento de iframes
- fechar() e Sair() métodos
- Manipulação de exceção
# 1) Métodos get ()
Comando WebDriver | Uso |
---|---|
getAttribute () | • O comando é usado para recuperar o valor do atributo especificado • O comando requer um único parâmetro de string que se refere a um atributo cujo valor desejamos saber e retorna um valor de string como resultado. driver.findElement (By.id ('findID')). getAttribute ('valor'); |
obter() | • O comando inicia um novo navegador e abre o URL especificado na instância do navegador • O comando usa um único parâmetro de tipo de string que geralmente é um URL do aplicativo em teste • Para os usuários do Selenium IDE, o comando pode se parecer muito com o comando aberto driver.get ('https://google.com'); |
getClass () | O comando é usado para recuperar o objeto Class que representa a classe de tempo de execução deste objeto driver.getClass (); |
getCurrentUrl () | • O comando é usado para recuperar o URL da página da web que o usuário está acessando no momento • O comando não requer nenhum parâmetro e retorna um valor de string driver.getCurrentUrl (); |
getPageSource () | • O comando é usado para recuperar a fonte da página da página da web que o usuário está acessando no momento • O comando não requer nenhum parâmetro e retorna um valor de string • O comando pode ser usado com várias operações de string, como contains () para verificar o presença do valor de string especificado resultado booleano = driver.getPageSource (). contains ('String a ser encontrada'); |
getTitle () | • O comando é usado para recuperar o título da página da Web em que o usuário está trabalhando no momento. Uma string nula é retornada se a página da web não tiver título • O comando não requer nenhum parâmetro e retorna um valor de string aparado String title = driver.getTitle (); |
getText () | • O comando é usado para recuperar o texto interno do elemento da web especificado • O comando não requer nenhum parâmetro e retorna um valor de string • É também um dos comandos amplamente utilizados para verificação de mensagens, rótulos, erros etc. exibidos nas páginas da web. String Text = driver.findElement (By.id ('Texto')). GetText (); |
getWindowHandle () | • O comando é usado para lidar com a situação quando temos mais de uma janela para lidar. • O comando nos ajuda a alternar para a janela recém-aberta e executa ações na nova janela. O usuário também pode voltar para a janela anterior, se desejar. private String winHandleBefore; winHandleBefore = driver.getWindowHandle (); driver.switchTo (). window (winHandleBefore); |
getWindowHandles () | • O comando é semelhante ao de “getWindowHandle ()”, com a diferença sutil de que ajuda a lidar com várias janelas, ou seja, quando temos que lidar com mais de 2 janelas. |
O snippet de código para “getWindowHandles ()” é fornecido abaixo:
public void explicitWaitForWinHandle(final WebDriver dvr, int timeOut, final boolean close) throws WeblivException { try { Wait wait = new WebDriverWait(dvr, timeOut); ExpectedCondition condition = new ExpectedCondition() { @Override public Boolean apply(WebDriver d) { int winHandleNum = d.getWindowHandles().size(); if (winHandleNum > 1) { // Switch to new window opened for (String winHandle : d.getWindowHandles()) { dvr.switchTo().window(winHandle); // Close the delete window as it is not needed if (close && dvr.getTitle().equals('Demo Delete Window')) { dvr.findElement(By.name('ok')).click(); } } return true; } return false; } };
# 2) Localizando links por linkText () e partialLinkText ()
Deixe-nos acessar “google.com” e “abodeqa.com” usando Texto do link () e parcialLinText () métodos do WebDriver.
Os links mencionados acima podem ser acessados usando os seguintes comandos:
motorista .findElement (By.linkText ( 'Google' )).clique();
motorista .findElement (By.linkText ( AbodeQA )).clique();
O comando encontra o elemento usando o texto do link e, em seguida, clica nesse elemento e, assim, o usuário é redirecionado para a página correspondente.
Os links mencionados acima também podem ser acessados usando os seguintes comandos:
motorista .findElement (By.partialLinkText ( 'Gosma' )).clique();
motorista .findElement (By.partialLinkText ( “Morada” )).clique();
Os dois comandos acima localizam os elementos com base na substring do link fornecido entre parênteses e, portanto, partialLinkText () encontra o elemento da web com a substring especificada e clica nele.
# 3) Seleção de vários itens em uma lista suspensa
Existem basicamente dois tipos de menus suspensos:
- Lista suspensa de seleção única : Uma lista suspensa que permite que apenas um único valor seja selecionado por vez.
- Lista suspensa de seleção múltipla : Uma lista suspensa que permite que vários valores sejam selecionados ao mesmo tempo.
Considere o código HTML abaixo para uma lista suspensa que pode selecionar vários valores ao mesmo tempo.
Red Green Yellow Grey
O snippet de código abaixo ilustra as várias seleções em um menu suspenso.
// select the multiple values from a dropdown Select selectByValue = new Select(driver.findElement(By.id('SelectID_One'))); selectByValue.selectByValue('greenvalue'); selectByValue.selectByVisibleText('Red'); selectByValue.selectByIndex(2);
# 4) Envio de um formulário
A maioria ou quase todos os sites têm formulários que precisam ser preenchidos e enviados durante o teste de um aplicativo da web. O usuário pode encontrar vários tipos de formulários, como formulário de login, formulário de registro, formulário de upload de arquivo, formulário de criação de perfil, etc.
No WebDriver, um usuário é alavancado por um método criado especificamente para enviar um formulário. O usuário também pode usar o método click para clicar no botão enviar como um substituto para o botão enviar.
Confira o snippet de código abaixo no formulário de “novo usuário” acima:
// enter a valid username driver.findElement(By. id ('username')).sendKeys('name'); // enter a valid email address driver.findElement(By. id ('email')).sendKeys('name@abc.com'); // enter a valid password driver.findElement(By. id ('password')).sendKeys('namepass'); // re-enter the password driver.findElement(By. id ('passwordConf')).sendKeys('namepass'); // submit the form driver.findElement(By. id ('submit')).submit();
Assim, assim que o controle do programa encontra o método de envio, ele localiza o elemento e aciona o enviar() método no elemento da web encontrado.
# 5) Tratamento de iframes
Ao automatizar aplicativos da web, pode haver situações em que sejamos obrigados a lidar com vários quadros em uma janela. Portanto, o desenvolvedor do script de teste é obrigado a alternar entre vários frames ou iframes.
Um acrônimo de quadro embutido como iframe é usado para inserir outro documento dentro do documento HTML atual ou simplesmente uma página da web em outra página da web, permitindo o aninhamento.
Considere o seguinte código HTML com o iframe na página da web:
Software Testing Help - iframe session
O código HTML acima ilustra a presença de um iframe incorporado em outro iframe. Portanto, para poder acessar o iframe filho, o usuário deve primeiro navegar até o iframe pai. Depois de realizar a operação necessária, pode ser necessário que o usuário navegue de volta ao iframe pai para lidar com o outro elemento da página da web.
É impossível se um usuário tentar acessar o iframe filho diretamente, sem passar pelo iframe pai primeiro.
Selecione iframe por id
motorista .switchTo (). frame ( ' ID da moldura ' );
Localizando iframe usando tagName
Ao localizar um iframe, o usuário pode enfrentar alguns problemas se o iframe não for atribuído com propriedades padrão. É um processo complexo localizar o quadro e alternar para ele. Para controlar a situação, um usuário é aproveitado para localizar um iframe usando um método tagName semelhante à maneira como encontramos qualquer outro elemento da web no WebDriver.
driver.switchTo (). frame (driver.findElements (By.tagName (“iframe”). get (0));
O comando acima localiza o primeiro elemento da web com o tagName especificado e alterna para esse iframe. “Get (0) é usado para localizar o iframe com o valor do índice.” Assim, em linha com o nosso código HTML, a sintaxe do código acima faria com que o controle do programa mudasse para “ParentFrame”.
Localizando iframe usando o índice:
a) quadro (índice)
driver.switchTo (). frame (0);
b) quadro (nome do quadro)
driver.switchTo (). frame (“nome do frame”);
c) frame (elemento WebElement)
Selecione a janela principal
driver.switchTo (). defaultContent ();
O comando acima traz o usuário de volta à janela original, ou seja, fora de ambos os iframes.
# 6) métodos close () e quit ()
Existem dois tipos de comandos no WebDriver para fechar a instância do navegador da web.
perto() : O método close () do WebDriver fecha a janela do navegador da web em que o usuário está trabalhando ou também podemos dizer a janela que está sendo acessada pelo WebDriver. O comando não requer nenhum parâmetro nem retorna nenhum valor.
b) sair () : Ao contrário do método close (), o método quit () fecha todas as janelas que o programa abriu. Da mesma forma que o método close (), o comando não requer nenhum parâmetro nem retorna nenhum valor.
Consulte os snippets de código abaixo:
motorista .fechar(); // fecha apenas uma única janela que está sendo acessada pela instância do WebDriver atualmente
motorista .Sair(); // fecha todas as janelas que foram abertas pela instância do WebDriver
# 7) Tratamento de exceções
Exceções são as condições ou situações que interrompem a execução do programa inesperadamente.
As razões para tais condições podem ser:
- Erros introduzidos pelo usuário
- Erros gerados pelo programador
- Erros gerados por recursos físicos
Portanto, para lidar com essas condições inesperadas, o tratamento de exceções foi conceituado.
Com relação ao código Java que implementamos durante a automação de um aplicativo da web, pode ser colocado em um bloco que é capaz de fornecer um mecanismo de tratamento contra as condições errôneas.
Pegando uma exceção
Para capturar uma exceção, usamos o bloco de código abaixo
try{ // Protected block // implement java code for automation } catch (ExceptionName e) { // catch block - Catches the exceptions generated in try block without halting the program execution }
Se ocorrer alguma exceção no bloco try / bloco protegido, os controles de execução verificam se há um bloco catch para o tipo de exceção correspondente e passa a exceção para ele sem interromper a execução do programa.
Vários blocos de captura
try{ //Protected block } catch (ExceptionType1 e) { // catch block } catch (ExceptionType2 e) { // catch block } catch (ExceptionType3 e) { // catch block }
No código acima, é provável que uma exceção seja capturada no primeiro bloco catch se o tipo de exceção corresponder. Se o tipo de exceção não corresponder, então a exceção é atravessada para o segundo bloco catch e terceiro bloco catch e assim por diante até que todos os blocos catch sejam visitados.
Condições do WebDriver e tratamento de exceções
Quando aspiramos verificar a presença de qualquer elemento na página da web usando vários comandos condicionais do WebDriver, o WebDriver presume que o elemento da web esteja presente na página da web. Se o elemento da web não estiver presente na página da web, os comandos condicionais lançam uma “NoSuchElementPresentException”. Assim, para evitar que tais exceções interrompam a execução do programa, usamos mecanismos de Tratamento de Exceções. Consulte o snippet de código abaixo:
WebElement saveButton = driver.findElement(By.id('Save')); try{ if(saveButton.isDisplayed()){ saveButton.click(); } } catch(NoSuchElementException e){ e.printStackTrace(); }
Lista de 25 comandos e exemplos mais populares do WebDriver
A seguir, está a lista dos 25 principais comandos do Webdriver usados rotineiramente que todos os testadores de automação devem conhecer.
Vamos examinar esses comandos um por um em detalhes.
Leitura adicional => Tutorial do Selenium WebDriver
# 1) get ()
Comando usando get () para abrir um URL no navegador atual.
O comando abaixo abrirá o URL especificado, ‘https://www.softwaretestinghelp.com’ no navegador.
Sintaxe:
driver.get('https://www.softwaretestinghelp.com');
Explicação:
- Navegue até o URL https://www.softwaretestinghelp.com
# 2) getCurrentUrl ()
Comando usando getCurrentUrl () para verificar se a URL está correta.
O comando abaixo obtém o URL atual no formato de string.
Sintaxe:
perguntas e respostas do teste sql pdf
driver.getCurrentUrl();
Normalmente usamos esse método em comandos para verificar se navegamos para a página correta conforme o esperado. Para isso, temos que usar Assert como mostrado abaixo Exemplo .
Sintaxe:
Assert.assertEquals(expectedUrl, driver.getCurrentUrl());
OndeesperadoUrl é o URL esperado no formato de string.
Explicação:
- Verifique e verifique se o URL carregado permanece o mesmo e se a página correta foi carregada.
# 3) findElement (por, por) e clique em ()
findElement (por, por) e clique () para clicar em qualquer elemento da página da web.
O método findElement (By, by) pesquisa e localiza o primeiro elemento na página atual, que corresponde aos critérios fornecidos como parâmetro. Este método é geralmente usado em comandos para simular ações do usuário, como clicar, enviar, digitar etc.
O comando a seguir pesquisa e localiza o primeiro elemento na página da web com id ”submit1” e clica nele se não estiver coberto.
Sintaxe:
driver.findElement(By.id('submit1')).click();
O elemento pode ser localizado usando EU IRIA , Nome , Aula Nome , Nome da Tag , Texto do link & Texto do link parcial , Seletor CSS e Caminho X .
Explicação:
- Procure o botão Enviar obrigatório.
- Clique no botão.
O comando abaixo seleciona um item da caixa de listagem.
Sintaxe:
WebElement roleDropdown = driver.findElement(By.id('name1'); roleDropdown.click();
Explicação:
- Pesquise e localize o item da lista pelo id “nome1”.
- Clique naquele item.
# 4) isEnabled ()
isEnabled () para verificar se o elemento está habilitado ou desabilitado no Selenium WebDriver.
Para verificar se um determinado elemento está habilitado em uma página da web, usamos o método isEnabled ().
Sintaxe:
boolean textBox = driver.findElement(By.xpath('//input(@name='textbox1')')).isEnabled();
Explicação:
- Encontra o elemento na página da web de acordo com o xpath e verifica se o elemento está habilitado.
# 5) findElement (por, por) com sendKeys ()
findElement (By, by) com sendKeys () para digitar nos campos do formulário.
A validação do formulário verifica inserindo as diferentes entradas do usuário que geralmente são necessárias nos testes de automação. Usamos findElement (By, by) para localizar os campos e sendKeys () para digitar algum conteúdo em um campo editável.
O comando a seguir usa o localizador de nomes para encontrar o campo do formulário e digita “Aaron” nele.
Sintaxe:
driver.findElement(By.name('name')).sendkeys('Aaron');
Explicação:
- Procure o campo de nome obrigatório no formulário.
- Digite o valor “Aaron” nele.
# 6) findElement (By, by) com getText ()
findElement (By, by) com getText () para armazenar o valor do elemento da web de destino.
O getText () é um método que obtém o texto interno do elemento da web. Obter texto é o texto dentro das tags HTML.
O código a seguir encontra o Elemento com tagName “select” e obtém o texto dentro da tag e o armazena em uma lista suspensa de variável. Agora, o dropDown String pode ser usado para outras ações dentro do programa.
Sintaxe:
String dropDown = driver.findElement(By.tagName('dropdown1')).getText();
Explicação:
- Procure o campo obrigatório no formulário que contém o tagName “dropdown1”.
- Pegue o texto dentro de sua tag HTML.
- Armazene o texto no objeto String ‘DropDown’.
# 7) Enviar ()
Enviar () para enviar um formulário da web.
O método click () que discutimos acima pode ser usado para clicar em qualquer link ou botão. Enviar () é uma alternativa melhor para clicar () se o elemento a ser clicado for um botão de envio. O botão de envio está dentro da tag HTML de 'formulário' e o tipo de botão é 'enviar' (não 'botão').
O submit () torna a vida mais fácil, encontrando automaticamente o botão e o método que pode ser anexado a qualquer outro campo, como nome ou endereço de e-mail. No caso de clique, temos que usar o método findElement (By, by) e especificar os localizadores corretos.
Em alguns cenários onde a ação é realizada por meio de elementos diferentes de um botão, submit () funciona e click () não.
Sintaxe:
driver.findElement(By.xpath('//input(@name='comments')')).submit();
Explicação:
- Encontre o elemento no caminho x fornecido com o nome 'comentários'.
- Envie o formulário.
# 8) findElements (por, por)
findElements (By, by) para obter a lista de elementos da web.
Às vezes, podemos querer imprimir ou realizar uma ação em uma lista de elementos da web, como links ou campos de entrada em uma página da web. Nesse caso, usamos findElements (By, by).
Sintaxe:
List allChoices = dropDown.findElements(By.xpath('.//fruitoption'));
Explicação:
- Uma lista de todos os elementos da web com xpath especificado é armazenada na lista allChoices da web.
# 9) findElements (por, por) com tamanho ()
findElements (By, by) com size () para verificar se um elemento está presente.
findElements (By, by) pode ser usado para verificar se um elemento está realmente presente na página da web.
O comando abaixo é usado se quisermos verificar se um elemento com um determinado localizador está presente em uma página web. Se size ()! = 0, então o elemento está presente.
Sintaxe:
Boolean checkIfElementPresent= driver.findElements(By.xpath('//input(@id='checkbox2')')).size()!= 0;
Explicação:
- O elemento Find é especificado em xpath com id ‘checkbox2’.
- De acordo com o tamanho da lista de elementos, o booleano checkIfElementPresent será definido como TRUE ou FALSE.
# 10) pageLoadTimeout (tempo, unidade)
pageLoadTimeout (tempo, unidade) para definir o tempo de carregamento de uma página.
Às vezes, devido a problemas no servidor ou atrasos na rede, uma página pode demorar mais do que o normal para carregar. Isso pode gerar um erro no programa. Para evitar isso, definimos um tempo de espera e pageLoadTimeout () é um desses métodos. Isso geralmente seguirá um comando get ().
Sintaxe:
driver.manage().timeouts().pageLoadTimeout(500, SECONDS);
Explicação:
- Aguarde 500 segundos para que uma página carregue.
# 11) implicitlyWait ()
implicitlyWait () para definir um tempo de espera antes de pesquisar e localizar um elemento da web.
O que acontecerá se o Webdriver tentar localizar um elemento antes que a página da web seja carregada e o elemento apareça? NoSuchElementExeption será lançado. Para evitar isso, podemos adicionar um comando para esperar implicitamente por um determinado período de tempo antes de localizar o elemento.
Sintaxe:
driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
Explicação:
- Espere implicitamente por 1000 segundos antes de executar a próxima linha no código.
# 12) até () e visibilidadeOfElementLocated ()
untill () de WebdriverWait e visibilityOfElementLocated () de ExpectedConditions para esperar explicitamente até que um elemento seja visível na página da web.
Para lidar com casos em que um elemento leva muito tempo para ficar visível na página da web do software, a aplicação de espera implícita torna-se complicado. Nesse caso, podemos escrever um comentário para aguardar até que o elemento apareça na página da web. Este comando usa uma combinação do método until () da classe WebdriverWait e o método visibilityOfElementLocated () da classe ExpectedConditions.
Sintaxe:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated (By.xpath('//input(@id=’name’)')));
Explicação:
- A primeira linha diz quanto tempo de espera, que é de 10 segundos.
- A segunda condição diz uma condição esperada pela qual esperar. Aqui está um elemento com id’name ’no xpath mencionado.
# 13) até () e alertIsPresent ()
untill () de WebdriverWait e alertIsPresent () de ExpectedConditions para esperar explicitamente até que um alerta apareça.
Em alguns cenários, temos que esperar pelos alertas para continuar o teste. Nesse caso, usamos um comando usando o método until () da classe WebdriverWait e o método alertIsPresent () da classe ExpectedConditions.
Por favor, veja o comando abaixo:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.alertIsPresent() );
Explicação:
- A primeira linha diz quanto tempo esperar - ou seja, 10 segundos.
- A segunda condição diz uma condição esperada pela qual esperar. Aqui está um pop-up de alerta.
# 14) getTitle ()
getTitle () para obter o título da página no webdriver Selenium.
Sintaxe:
String title = driver.getTitle(); System.out.println(title);
Isso geralmente é usado para imprimir o título nos logs de saída.
Explicação:
- Obtenha o título da página da web e armazene-o no título do objeto String.
- Imprima o valor armazenado no título para os registros de saída.
# 15) Selecione
Selecione a classe para selecionar e desmarcar valores no menu suspenso no Selenium WebDriver.
Freqüentemente, temos cenários relacionados ao menu suspenso. Métodos da classe Select são usados para lidar com isso. Podemos usar selectByVisibleText (), selectByValue () ou selectByIndex () de acordo com o cenário.
Sintaxe:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.selectByVisibleText('Apple');
Explicação:
- Encontre Drop down usando seu id “select”.
- Selecione o texto visível “Apple” no menu suspenso.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.selectByValue('Apple')
Explicação:
- Encontre o menu suspenso usando seu id “selecionar”.
- Selecione o texto com o valor “Apple” no menu suspenso.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.selectByIndex(1);
Explicação:
- Encontre o menu suspenso usando seu id “selecionar”.
- Selecione o item suspenso com valor de índice '1' no menu suspenso (segundo item).
Semelhante ao select, podemos desmarcar os valores da lista suspensa usando comandos semelhantes.
Verifique os comandos:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.deselectByVisibleText('Apple');
Explicação:
- Encontre o menu suspenso usando seu id “selecionar”.
- Desmarque o texto visível “Apple” no menu suspenso.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.deselectByValue('Apple');
Explicação:
- Encontre o menu suspenso usando seu id “selecionar”.
- Desmarque o texto com o valor “Apple” no menu suspenso.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.deselectByIndex(1);
Explicação:
- Encontre o menu suspenso usando seu id “selecionar”.
- Desmarque o item suspenso com o valor de índice '1' no menu suspenso (segundo item).
navegue () para navegar entre os URLs.
Freqüentemente, vemos cenários em que podemos querer navegar a partir do URL de destino e, em seguida, voltar ou avançar. Nesses casos, em vez de usar get (), podemos usar navigate (). Em Navigate, podemos usar os métodos back () e forward () sem especificar os URLs.
Sintaxe:
driver.navigate().to('https://www.softwaretestinghelp.com'); driver.navigate().back(); driver.navigate().forward();
Explicação:
- Navegue para https://www.softwaretestinghelp.com
- Navegue de volta.
- Navegue para frente.
# 17) getScreenshotAs ()
getScreenshotAs () para capturar a tela inteira da página no Selenium WebDriver.
Este é freqüentemente necessário para salvar seus detalhes de trabalho ou às vezes para verificar manualmente os resultados. O comando abaixo é usado para fazer uma captura de tela e salvar em um arquivo de saída.
Sintaxe:
File shot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(shot, new File('D:\ shot1.jpg'));
Explicação:
- Faça uma captura de tela e salve o arquivo na foto do objeto.
- Salve o arquivo na unidade D como shot1.png.
# 18) moveToElement ()
moveToElement () da classe Actions para simular o efeito de foco do mouse.
Existem cenários em que precisamos passar o mouse sobre os elementos da web, como o menu para ver o submenu, links para ver as mudanças de cor etc. Nestes casos, usamos a classe Actions. Dê uma olhada na sintaxe abaixo para a classe Action.
Sintaxe:
Actions actions = new Actions(driver); WebElement mouseHover = driver.findElement(By.xpath('//div(@id='mainmenu1')/div')); actions.moveToElement(mouseHover); actions.perform();
Explicação
- Encontre e localize o elemento da web com div id ‘mainmenu1’.
- Mova o ponteiro do mouse para o elemento.
# 19) dragAndDrop ()
dragAndDrop () da classe Actions para arrastar um elemento e soltá-lo em outro elemento.
Em alguns cenários, podemos querer arrastar elementos. Por exemplo, arraste uma imagem para o palco. Nesse caso, podemos usar a classe Actions.
No método dragAndDrop, passamos os dois parâmetros, localizador de origem - o elemento que queremos arrastar e localizador de destino - o elemento no qual queremos soltar.
Sintaxe:
WebElement sourceLocator = driver.findElement(By.xpath('//*(@id='image1')/a')); WebElement destinationLocator = driver.findElement(By.xpath('//*(@id='stage')/li')); Actions actions=new Actions(driver); actions.dragAndDrop(sourceLocator, destinationLocator).build().perform();
Explicação:
- Encontre e localize o elemento da web de origem.
- Encontre e localize o elemento da web de destino.
- Arraste e solte o elemento de origem no elemento de destino.
# 20) switchTo () e accept (), dispense () e sendKeys ()
Os métodos switchTo () e accept (), dis () e sendKeys () da classe Alert para alternar para alertas pop-up e tratá-los.
Para mudar para alertas, pop-ups e tratá-los, usamos uma combinação de troque para() e aceitar (), dispensar () métodos da classe Alert.
Sintaxe:
Alert alert = driver.switchTo().alert(); alert.sendKeys('This Is Softwaretestinghelp'); alert.accept()
Explicação:
- Mude para a janela de alerta.
- Digite “This Is Softwaretestinghelp” dentro do alerta.
- Aceite o alerta e feche-o.
alert.dismiss () pode ser usado para descartar o alerta.
# 21) getWindowHandle () e getWindowHandles ()
getWindowHandle () e getWindowHandles () para lidar com várias janelas no Selenium WebDriver.
quais são os melhores baixadores de música
Existem muitos casos em que os aplicativos da web têm muitos frames ou janelas.
São principalmente anúncios ou janelas pop-up de informações. Podemos lidar com várias janelas usando Windows Handlers. O Webdriver armazena um id de janela exclusivo para cada janela. Usamos este id para tratá-los.
Sintaxe:
String handle= driver.getWindowHandle(); Set handle= driver.getWindowHandles();
Os comandos acima são usados para obter ids de janela da janela atual e todas as janelas, respectivamente. Por favor, veja o loop abaixo para ver como podemos ir para cada janela através do loop for.
for (String handle : driver.getWindowHandles()){ driver.switchTo().window(handle); }
Explicação:
- Para cada id de identificador de janela de driver.getWindowHandles (), alterne para esse id de janela.
# 22) getConnection ()
getConnection () do DriverManager para iniciar a conexão do banco de dados.
Para iniciar uma conexão de banco de dados, usamos getConnection da classe DriverManager.
Sintaxe:
DriverManager.getConnection(URL, 'username', 'password' )
Explicação:
- Conecte-se ao banco de dados por meio de URL e credenciais.
# 23) ENTÃO
POI para ler os arquivos do Excel.
Em testes orientados a dados, geralmente salvamos entradas em arquivos Excel e os lemos. Para fazer isso no WebDriver, importamos o pacote POI e usamos o comando abaixo.
Sintaxe:
Workbook workbook = WorkbookFactory.create(new FileInputStream(file)); Sheet sheet = workbook.getSheetAt(0);
Explicação:
- Crie um arquivo de leitor.
- Leia o arquivo.
# 24) assertEquals (), assertNotEquals (), assertTrue () e assertFalse ()
AssertEquals (), assertNotEquals (), assertTrue () e assertFalse () para comparar os resultados.
As afirmações são usadas para comparar os resultados esperados e reais. A aprovação ou reprovação de um teste geralmente é decidida a partir do resultado das afirmações. Diferentes tipos de declaração são usados na automação.
Sintaxe:
Assert.assertEquals(message, “This text”); Assert.assertNotEquals(message, “This text”); Assert.assertTrue(result<0); Assert.assertFalse(result<0);
Explicação:
- No primeiro comando, sempre que os valores esperados e reais são iguais, a asserção passa sem exceção. ou seja, se a mensagem for 'Este texto', a afirmação é aprovada.
- No segundo comando, sempre que os valores esperados e reais são iguais, a asserção falha com uma exceção. ou seja, se a mensagem for 'Este texto', a afirmação falha.
- No terceiro comando, se a condição for aprovada, a afirmação será aprovada. ou seja, se o resultado<0, then the assertion passes.
- No quarto comando, se a condição for aprovada, a asserção falha. ou seja, se o resultado<0, then the assertion fails.
# 25) fechar () e sair ()
close () e quit () para fechar janelas e instâncias de driver.
Esses comandos são usados no final de cada programa de automação.
Sintaxe:
driver.close() driver.quit()
Explicação:
O primeiro comando fecha a janela atual.
O segundo comando fecha esta instância do driver, fechando todas as janelas associadas, que são abertas.
Conclusão
Neste tutorial, apresentamos vários comandos comuns e excessivamente usados do WebDriver. Tentamos explicar os comandos com exemplos adequados e fragmentos de código.
Eu tentei o meu melhor para explicar os comandos WebDriver mais populares que usamos rotineiramente em nosso trabalho diário. Esses comandos permitirão que você trabalhe facilmente com o Selenium.
Espero que tenha sido interessante e instruído para você.
Você é um testador de automação que tentou qualquer um dos comandos acima? Ou perdemos algum comando que você está usando na lista acima?
Próximo Tutorial # 18 : No próximo tutorial, discutiremos sobre Tabelas, frames e elementos dinâmicos da web que são uma parte essencial de qualquer projeto web. Também cobriremos o manipulação de exceção o tópico importante em mais detalhes em um dos próximos Tutoriais do Selenium.
Leitura recomendada
- Tutorial Cucumber Selenium: Cucumber Java Selenium WebDriver Integration
- Introdução ao Selenium WebDriver - Selenium Tutorial # 8
- Como executar o Selenium WebDriver em diferentes navegadores populares
- Implementação do nosso primeiro script WebDriver - Selenium WebDriver Tutorial # 10
- Selenium FAQs
- Como lidar com alertas / pop-ups no Selenium WebDriver - Tutorial do Selenium nº 16
- Tutorial do GeckoDriver Selenium: Como usar o GeckoDriver em projetos do Selenium
- Espera implícita e explícita no Selenium WebDriver (tipos de esperas de selênio)