Comandos do webdriver Selenium importantes de 2021

Nesta série de tutorial, aprenderemos sobre todos os comandos completos do selenium webdriver, começando com os comandos básicos do selenium até os comandos avançados do selenium webdriver na ordem de artigos abaixo: 

Comandos básicos do Selenium Webdriver - Perguntas: 

Selênio intermediário driver da web comandos -Questões:

Comandos avançados do Selenium WebDriver -Questões:

Comandos básicos do selênio - Respostas: 

comandos selenium webdriver
Comandos do webdriver Selenium

Selênio, navegue até o url:

No Selenium Webdriver, se quisermos navegar ou abrir qualquer URL específico através do nosso navegador, podemos fazê-lo em duas abordagens diferentes, uma é com o método get () e outra com navegar, vamos dar uma olhada em como poderia ser feito : 

public void getUrl(String url) { try { driver.get(url); BASE_LOGGER.info("Navegado com sucesso para a URL como: " + url); } catch (Exceção ex) { String exceçãoData = ex.getCause().getMessage(); BASE_LOGGER.error("Não foi possível navegar para URL: " + url + " com o erro como: " + exceptionData); } }

O código que você pode escrever para navegar na url é driver.get (“http://example.com”), enquanto o driver é a instância do Webdriver da interface do Selenium WebDriver.

visite aqui para entender como iniciar todos os navegadores no Selenium.

Como o método get funciona internamente no Selenium: 

Assim que este método get () for chamado a partir do seu script de teste, a referência do Webdriver, isto é, o driver irá esperar até que a página seja carregada, na verdade o método get () dispara internamente função onload que retorna o identificador para a referência do driver quando a página está totalmente carregada.

Selênio navegar para frente e navegar para trás:

Outra abordagem para navegar até o url com o histórico do navegador é usando o método navigate (), onde o Selenium usa o histórico do navegador para navegar para frente ou voltar com seus respectivos URLs, como: 

Selênio navegar para frente

public void browseForward() { try { driver.navigate().forward(); BASE_LOGGER.info("Navegado com sucesso" ); } catch (Exceção ex) { String exceçãoData = ex.getCause().getMessage(); BASE_LOGGER.error("Não foi possível navegar com o erro como: " + exceptionData); } }

Selênio navegar para trás: 

public void navigationBack() { try { driver.navigate().back(); BASE_LOGGER.info("Navegado com sucesso de volta para a URL "); } catch (Exceção ex) { String exceçãoData = ex.getCause().getMessage(); BASE_LOGGER.error("Não foi possível navegar de volta para URL : com o erro como : " + exceptionData); } } 

Página de atualização do Selenium

Podemos usar o método refresh () do Selenium navigate 

public void seleniumRefreshPage() { try { driver.navigate().refresh(); BASE_LOGGER.info("Página de atualização do Selenium concluída com sucesso"); } catch (Exceção ex) { String exceçãoData = ex.getCause().getMessage(); BASE_LOGGER.error("Não foi possível executar Selenium Refresh Page : com o erro como : " + exceptionData); } }

Clique de selênio

Para realizar qualquer operação de clique com o clique do Selenium, temos que usar o método chamado click () na abordagem a seguir, existem outras maneiras de executar a operação de clique em qualquer um dos WebElement no Selenium, ou seja, usando JavaScriptClick, que é muito útil às vezes dependendo das situações onde seu método normal de clique do Selenium está funcionando de uma maneira muito estável, há alguns casos em que se você estiver automatizando com o navegador IE e se o aplicativo da Web em teste for construído em algum tipo de JS de bootstrap, o método normal de clique do selênio pode não funcionar em algum momento , nesse caso você pode usar o método de clique Javascript.

public void safeClick(Por elemento) { try { driver.findElement(elemento).click(); BASE_LOGGER.info("A operação Safeclick foi executada para o localizador: " + String.valueOf(element)); } catch (Exception e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Erro encontrado, por exemplo: " + exceptionData + " ao executar Safeclick no elemento : " + element); } }

Você pode passar o elemento usando diferentes estratégias de localização (ou seja, xpath, name, css etc) no método chamado findElement () e então realizar a operação do método click () como acima.

Chaves de envio de selênio

Quando precisamos inserir algum texto em alguma caixa de texto via Selenium, fazemos uso do método sendkeys () do Selenium passando o "Texto a ser inserido" como o parâmetro no método sendKeys ("Texto a ser inserido") e semelhante a o método click () esse método também é aplicado a qualquer webElement (aqui, caixa de texto da web), portanto, temos que usar driver.findElement para enviar o Texto para esse TextBox.

O código de amostra é assim: 

public void enterTextIntoElement(Por elemento, String textToBeEntered) { try { driver.findElement(element).sendKeys(textToBeEntered); BASE_LOGGER.info( "operação enterTextIntoElement foi executada para o localizador: " + String.valueOf(element)); } catch (Exceção ex) { String exceçãoData = ex.getCause().getMessage(); BASE_LOGGER.error("operação enterTextIntoElement falhou para o localizador : " + String.valueOf(element) + " com a exceção ie : " + exceptionData); } }

Selênio campo de texto claro

Se quisermos limpar quaisquer dados de um campo de texto previamente preenchido, podemos usar o método chamado clear () e também com a ajuda de Keys Class no Selenium podemos fazer isso, através do qual podemos pegar as Operações de Teclado diretamente junto com os atalhos de teclado :

Para limpar os dados com a ajuda do método clear (), podemos escrever na abordagem abaixo: 

public void clearField(Por elemento) { try { driver.findElement(elemento).clear(); BASE_LOGGER.info("A operação ClearField foi executada para o localizador: " + String.valueOf(element)); } catch (Exception e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("A operação ClearField falhou para o localizador : " + String.valueOf(element) + " com a exceção ie : " + exceptionData); } }

Usando a classe Keys, também podemos limpar os campos de Texto na abordagem a seguir.

Janela de maximização de selênio

Ao trabalhar com a automação do navegador, se tivermos que maximizar a janela no Selenium, poderíamos usar as seguintes abordagens: 

Selenium Maximize Window usando o método Maximize ():  

public void maximizeWindow() { try { driver.manage().window().maximize(); BASE_LOGGER.info("Janela maximizada com sucesso"); } catch (Exception e) { BASE_LOGGER.info("Ocorreu uma exceção ao maximizar a janela como : " + e.getCause().getMessage()); } }

Selenium Maximize Window usando ChromeOptions para ChromeBrowser:

Ao usar o método abaixo, estamos configurando uma instância do navegador Chrome para Webdriver no modo maximizado e a sessão do driver retornada continuará com o mesmo recurso (ou seja, maximizar a janela) para outras operações da web de acordo com o script.

public WebDriver openBrowserInMaximizeWindow(){ tente { ChromeOptions options = new ChromeOptions(); options.addArguments("start-maximized"); Driver WebDriver = novo ChromeDriver(opções); }catch(Exception e){ BASE_LOGGER.error("Exceção encontrada com: " + e.getCause().getMessage()); } motorista de retorno; }

Janela de minimização de selênio

Podemos minimizar a janela usando o comando Minimize () do Selenium com a seguinte abordagem:  

public void minimizeWindow() { try { driver.manage().window().minimize(); BASE_LOGGER.info("Janela minimizada com sucesso"); } catch (Exception e) { BASE_LOGGER.info("Ocorreu uma exceção ao minimizar a janela como : " + e.getCause().getMessage()); } }

Selênio fechar navegador:

Para fechar o navegador no Selenium, usamos o método close () na abordagem abaixo: 

public void closeCurrentWindow() { try { if (null != driver) { driver.close(); BASE_LOGGER.info("Fechado com sucesso a janela/navegador atual"); } else { BASE_LOGGER.info("Não foi possível fechar a instância atual da janela/navegador como NULL"); } } catch (Exception e) { BASE_LOGGER.info("Ocorreu uma exceção ao fechar a janela/navegador atual"); } }

Selenium saiu do navegador

Para sair de todas as instâncias do navegador no Selenium, usamos o método quit () na abordagem abaixo: 

public void quitBrowser() { try { if (null != driver) { driver.quit(); BASE_LOGGER.info("SAIR do navegador com sucesso"); } else { BASE_LOGGER.info("Não foi possível SAIR do navegador como seu NULL"); } } catch (Exception e) { BASE_LOGGER.error("Ocorreu uma exceção ao QUITAR o navegador"); } }

Diferença entre driver.close () e driver.quit () no Selenium:

Comandos intermediários do webdriver Selenium - respostas:

Lista suspensa de selênio:

Na estrutura do DOM da página da Web, a lista suspensa é implementada por Selecionar ou inserir Tage de HTML. Para trabalhar com a lista suspensa com Selenium e executar determinados 

operações da web nos menus suspensos, precisamos usar a classe “Select” da API Selenium WebDrivers como parte de “org.openqa.selenium.support.ui”Pacote do Selenium WebDriver. 

Existem 2 declarações de problema diferentes ou pergunte ao trabalhar com a Seleção de DropDown no Selenium: 

Seleção de um único elemento em uma lista suspensa por vez

Na abordagem abaixo, podemos trabalhar com Dropdown:  

Passo um :

Você deve criar um identificador para o DropDown WebElement usando a classe Selecionar criação de objeto da maneira abaixo:

Selecionar selecionar = novo Selecionar (elemento da web WebElement);

Passo dois : 

Existem 3 abordagens diferentes para selecionar o valor da lista suspensa no Selênio, poderíamos usar qualquer um dos métodos abaixo para selecionar o valor da lista suspensa no Selênio: 

Aqui está a abordagem abaixo que podemos adotar para selecionar um valor no menu suspenso: 

Lista suspensa em selênio - abordagem um: 
Na Abordagem Um, você pode usar o texto que é visível da Seleção Desejada do Elemento Web.

public void selectFromDropDownByText(Por localizador, String visibleText) { try { Selecionar dropDownElement = new Select(driver.findElement(locator)); dropDownElement.selectByVisibleText(visibleText); BASE_LOGGER.info("A operação SelectFromDropDownByText foi executada para o localizador: " + String.valueOf(locator)); } catch (Exception e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Erro encontrado, por exemplo: " + exceptionData + " ao executar selectFromDropDownByText no elemento: " + locator); } }

No método acima, você pode passar o localizador da lista suspensa e o texto visível que você deseja selecionar na lista suspensa, então ele executará a operação desejada. Selecionando o elemento suspenso esperado. 

Lista suspensa de selênio - abordagem dois:

Nesta Abordagem, você seleciona o Webelement usando o atributo value da seleção do WebElement desejada no menu suspenso: 

public void selectFromDropDownByValue(Por localizador, String visibleText) { try { Selecione dropDownElement = new Select(driver.findElement(locator)); dropDownElement.selectByValue(“Valor do Webelement desejado”); BASE_LOGGER.info("operação selectFromDropDownByValue foi executada para o localizador: " + String.valueOf(locator)); } catch (Exception e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Erro encontrado, por exemplo: " + exceptionData + " ao executar selectFromDropDownByValue no elemento: " + locator); } }

No método acima, você pode passar o localizador da lista suspensa e o atributo de valor do WebElement que deseja selecionar na lista suspensa, então ele executará a operação desejada. Selecionando o elemento suspenso esperado. 

Lista suspensa de selênio - abordagem três:

Nesta abordagem, você seleciona o Webelement usando o índice (ordem do WebElement na tag de seleção HTML) da seleção do WebElement desejada na lista suspensa, o índice geralmente começa em 0:

public void selectFromDropDownByIndex(By locator, String visibleText) { try { Select dropDownElement = new Select(driver.findElement(locator)); dropDownElement.selectByIndex(5); BASE_LOGGER.info("operação selectFromDropDownByIndex foi executada para o localizador: " + String.valueOf(locator)); } catch (Exception e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Erro encontrado, por exemplo: " + exceptionData + " ao executar selectFromDropDownByIndex no elemento : " + locator); } }

No método acima você pode passar o localizador da lista suspensa e o índice / ordem do WebElement (na Marca de Seleção da Lista suspensa) que você deseja selecionar na lista suspensa, então ele executará a operação desejada. .

Seleção de vários elementos em um menu suspenso por vez 

Depende da estrutura e implementação do HTML DOM se qualquer elemento suspenso pode ter seleção múltipla de Elementos. Para selecionar vários elementos no Selenium, temos que seguir as duas etapas abaixo: 

Passo um : Verifique se o DropDown WebElement permite a seleção múltipla usando o método isMultiple (), isso retorna booleano como verdadeiro ou falso.

Passo dois : se a etapa acima retornar verdadeiro, o menu suspenso permite a seleção múltipla. E depois disso, podemos usar o discutido acima qualquer / todas as três abordagens diferentes para selecionar vários valores e realizar as operações desejadas.

Portanto, para concluir aqui abaixo está o código de amostra:

Elemento WebElement =driver.findElement(By.xpath("XPATH DO DropDown")); Select selectMultiple = new Select(element); if(selectMultiple.isMultiple()){ selectMultiple.selectByIndex(1); selectMultiple.selectByIndex(2); // Da mesma forma, poderíamos usar outras abordagens/métodos para selecionar elementos suspensos, como selectByVisibleText ou selectByValue }

Arraste e solte no selênio :

No segmento do tutorial, aprenderemos todas as diferentes abordagens de arrastar e soltar no Selenium, como: 

O que é arrastar e soltar no Selênio e onde ele é usado: 

Arrastar e soltar é uma operação específica quando os usuários navegam para seus aplicativos da web e tentam realizar a operação (arrastar pelo movimento do mouse) em algum elemento da web que pode se mover livremente sobre o aplicativo e pode ser solto em algum outro local da página da web desse aplicativo. 

Aqui, o elemento que está sendo arrastado é denominado Source WebElement e o elemento onde está sendo solto é denominado Destination WebElement. 

Para executar os cenários acima por meio da automação com Selenium, precisamos arrastar e soltar as funcionalidades fornecidas pelo Selenium.

Diferentes abordagens de arrastar e soltar no selênio:

Arraste e solte no Selenium usando o método Build (): 

Como o método Build () funciona internamente :

método build () da classe Actions no Selenium que faz parte do pacote org.openqa.selenium.interactions gera internamente ações compostas 

combinando todas as ações que foram chamadas ou disparadas antes de chamar o método build ().

Por exemplo :

new Actions(driver).clickAndHold(sourceElement).moveToElement(destinationElement) .release(destinationElement).build();

A instrução acima para executar a construção da operação de arrastar e soltar está sendo usada para vincular as ações anteriores, como clickAndHold, moveToElement e métodos de liberação.

Aqui está o trecho de código abaixo para executar o arrastar e soltar no Selenium usando o método de compilação da classe Actions: 

public void dragAndDrop(Por origem, Por destino) { try { WebElement sourceElement = driver.findElement(source); WebElement destinationElement = driver.findElement(destination); Construtor de ações = new Actions(driver); Ação dragAndDrop = builder.clickAndHold(sourceElement).moveToElement(destinationElement) .release(destinationElement).build(); dragAndDrop.perform(); BASE_LOGGER.info("Executada com sucesso a ação de arrastar e soltar "); } catch (Exception e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Erro encontrado, por exemplo: " + exceptionData + " ao executar DragAndDrop "); } }

Arraste e solte no Selenium usando o método dragAndDrop ():

Como o método dragAndDrop () funciona internamente:

O método dragAndDrop (sourceWebElement, destinationWebElement) basicamente leva dois argumentos, um é a origem e outro é o elemento web de destino. 
dragAndDrop remove a necessidade de clickAndHold, moveToElement, métodos de liberação na classe Action, ele controla internamente todos os cenários que são executados por esses métodos.

Aqui está o snippet de código a seguir para executar dragAndDrop com o método dragAndDrop:

public void dragAndDropOps(Por origem, Por destino) { try { WebElement sourceElement = driver.findElement(source); WebElement destinationElement = driver.findElement(destination); Construtor de ações = new Actions(driver); builder.dragAndDrop(sourceElement,destinationElement).perform(); BASE_LOGGER.info("Executada com sucesso a ação de arrastar e soltar "); } catch (Exception e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Erro encontrado, por exemplo: " + exceptionData + " ao executar DragAndDrop "); } }

Arraste e solte no Selenium usando o método dragAndDropBy ():

Como o método dragAndDropBy (WebElement source, int xOffset, int yOffset) funciona internamente:

O método dragAndDropBy () leva 3 argumentos, que são: 

Source WebElement: o elemento que é arrastado, ou seja, o elemento de origem 

xOffset: deslocamento horizontal do local de destino 

yOffset: deslocamento do movimento vertical do local de destino 

Internamente, esse método pega o elemento da web de origem e o move e libera no local de destino. Este método é útil se você deseja mover qualquer elemento da web de origem para qualquer localização de pixel.

Abaixo está o snippet de código para DragAndDropBy no Selenium:

public void dragAndDropByOps(Por fonte, int xOffSet,int yOffSet) { try { WebElement sourceElement = driver.findElement(source); Construtor de ações = new Actions(driver); builder.dragAndDropBy(sourceElement,xOffSet,yOffSet).build().perform(); BASE_LOGGER.info("Executada com sucesso a ação de arrastar e soltar "); } catch (Exception e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Erro encontrado, por exemplo: " + exceptionData + " ao executar DragAndDrop "); } }

Visite aqui para obter o restante dos conjuntos avançados de comandos do webdriver do Intermediate Selenium.

Comandos avançados do Selenium WebDriver -Respostas:

Clique duas vezes no selênio :

Para replicar a operação, ou seja, clicar duas vezes no Selenium com o mouse, precisamos realizar um clique duplo através da classe Actions no Selenium e podemos fazer isso da seguinte maneira: 

public void doubleClick(By locator) { try { Elemento WebElement = driver.findElement(locator); Ações ações = new Ações(driver); actions.doubleClick(element).perform(); BASE_LOGGER.info("Realizou o duplo click no elemento : " + locator); } catch (StaleElementReferenceException e) { BASE_LOGGER.error("O elemento não está anexado ao documento da página " + e.getCause().getMessage()); } catch (NoSuchElementException e) { BASE_LOGGER.error("Elemento " + localizador + " não foi encontrado no DOM " + e.getCause().getMessage()); } catch (Exception e) { BASE_LOGGER.error("Elemento " + localizador + " não foi clicável " + e.getCause().getMessage()); } }

O trecho de código acima é um método que basicamente usa um argumento como Locator, ou seja, o WebElement no qual o clique duplo deve ser executado.

Contextclick no selênio:

Para replicar a operação de clique de contexto ou clique com o botão direito do mouse, precisamos executar o método de clique de contexto por meio da classe Actions no Selenium e podemos fazer isso da seguinte maneira: 

public void rightClick(Por localizador) { try { Elemento WebElement = driver.findElement(localizador); Ações ações = new Ações(driver); actions.contextClick(element).perform(); BASE_LOGGER.info("Executado o contexto Clique no Elemento : " + localizador); } catch (StaleElementReferenceException e) { BASE_LOGGER.error("O elemento não está anexado ao documento da página " + e.getCause().getMessage()); } catch (NoSuchElementException e) { BASE_LOGGER.error("Elemento " + localizador + " não foi encontrado no DOM " + e.getCause().getMessage()); } catch (Exception e) { BASE_LOGGER.error("Elemento " + localizador + " não foi clicável " + e.getCause().getMessage()); } }

Para obter os comandos detalhados do driver da Web do Advance Selenium, visite aqui. Aula de ações no Selenium e suas implementações acesse aqui .

Perguntas frequentes críticas: 

O que é manage () no Selenium?

driver.manage () retorna uma referência de implementação de WebDriver.Options Interface.Options interface é uma interface para gerenciar e manipular ações em um menu do navegador, como: 

Para conjuntos exaustivos de Perguntas da entrevista do Selenium - Conjuntos críticos e avançados, visite aqui.

Conclusão:

Nesta seção do tutorial, cobrimos o básico Driver da web Selênio comandos, clique aqui para aprender o Comandos do webdriver intermediário e avançado do Selenium. Para aprender Selenium from Scratch clique aqui.

Deixe um comentário