how upload file using selenium webdriver 3 methods
Aprenda diferentes métodos para lidar com o upload de arquivos no Selenium com exemplos de código:
O upload de arquivos é realizado quando há necessidade de fazer upload de qualquer arquivo ou documento em um site específico, como formulários, páginas de registro, uploaders de documentos, etc.
O processo de envio de um arquivo inclui navegar em um arquivo do local desejado ou de seu computador e enviá-lo para o site.
=> Verifique TODOS os tutoriais do Selenium aqui
O que você aprenderá:
Selenium Upload File
Entregar o upload do arquivo no Selenium pode facilitar o trabalho humano e pode ser feito simplesmente usando o sendKeys () método. Uma mensagem é exibida após o upload de um arquivo que confirma se o arquivo foi enviado com sucesso. Existem muitos outros métodos de automação para upload de arquivos.
Os tópicos abordados neste tutorial incluem upload de arquivo em HTML, métodos para lidar com upload de arquivo no Selenium (que incluiria métodos a saber: usar sendKeys e, em seguida, usar AutoIT e classe Robot).
Este tutorial também explica a implementação de código para lidar com o upload de arquivos usando esses métodos no Selenium, após o qual veremos alguns exemplos onde o upload de arquivos é realizado com a ajuda do Selenium.
Upload de arquivo em HTML
A implementação de código a seguir explica a operação de upload de arquivo na página HTML. O código HTML mostra como a operação de upload pode ser realizada clicando primeiro no Escolher arquivo botão para navegar pelo arquivo a ser carregado e clique em Subir arquivo opção, após o qual podemos ver que o arquivo foi carregado com sucesso.
A imagem acima consiste na página HTML criada e abaixo está o código HTML da mesma. Vamos dar uma olhada rápida no código HTML.
File Upload File Uploading (Upload the image file)
Select file to upload:
Assim, ao enviar o arquivo desejado clicando no Subir arquivo opção, a página (imagem) abaixo é exibida (ou seja, o arquivo de imagem carregado é exibido), o que confirma que o arquivo escolhido para carregar foi carregado com sucesso.
(imagem fonte )
Métodos para fazer upload de arquivos no Selenium
Vejamos alguns métodos de Tratamento de Upload de Arquivos e também a implementação de código para o mesmo.
O upload de arquivos no Selenium pode ser feito com os métodos abaixo:
- Usando o método sendKeys
- Usando a ferramenta AutoIT
- Com a ajuda de Robot Class
# 1) Usando o método sendKeys
A maneira mais básica de enviar arquivos no Selenium é usando o método sendKeys. É um recurso embutido para upload de arquivo no Selenium.
A sintaxe é a seguinte:
WebElement upload_file = driver.findElement(By.xpath('//input(@id='file_up')')); upload_file.sendKeys('C:/Users/Sonali/Desktop/upload.png');
Vamos entender a implementação do código para a técnica acima:
Para fazer upload de arquivos usando este método, primeiro precisamos inspecionar o elemento ou o botão fornecido para upload de arquivo e, em seguida, usando sendKeys, navegar pelo caminho onde o arquivo real a ser carregado é mantido. Coloque o caminho junto com o nome do arquivo em sendKeys para que o programa navegue até o caminho mencionado para buscar o arquivo.
Depois disso, clique no botão salvar ou enviar e o arquivo será visto carregado. Às vezes, também recebemos uma mensagem de que o arquivo está sendo carregado com sucesso.
Implementação de código usando o método sendKeys:
software de backup grátis para windows 7
package SeleniumPrograms; import java.io.IOException; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class FileUpload { public static void main(String() args) throws IOException, InterruptedException { // TODO Auto-generated method stub WebDriver d = new FirefoxDriver(); d.manage().window().maximize(); //always write wait code after this d.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS); //for page load d.get('https://www.monsterindia.com/seeker/registration'); //Testing webpage d.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); //for Implicit wait JavascriptExecutor js = (JavascriptExecutor)d; //Scrolling using JavascriptExecutor js.executeScript('window.scrollBy(0,380)');//Scroll Down to file upload button (+ve) Thread.sleep(3000); // FILE UPLOADING USING SENDKEYS .... WebElement browse = d.findElement(By.xpath('//input(@id='file-upload')')); //click on ‘Choose file’ to upload the desired file browse.sendKeys('C:\Users\Chait\Desktop\Files\Job Specification.txt'); //Uploading the file using sendKeys System.out.println('File is Uploaded Successfully'); } }
Portanto, para enviar arquivos usando a opção sendKeys, simplesmente temos que usar o método sendKeys embutido para fazer o upload do arquivo necessário com êxito.
Esta é a saída do código acima (para Monster.com ) onde podemos ver uma mensagem exibida como: “Arquivo carregado com sucesso” sobre o upload do arquivo no driver da web selenium usando o método sendKeys.
# 2) Usando AutoIT
AutoIT é um freeware e uma ferramenta de automação de código aberto para o sistema operacional Windows. Ele foi escrito em uma linguagem de computador de script BASIC para automatizar a interface de usuário do Microsoft Windows. Ele simula qualquer combinação de pressionamentos de tecla, movimentos do mouse e manipulação de controle de janelas.
Etapas para baixar e instalar a ferramenta AutoIT:
- Abrir ligação
- Vá para AUTOIT -> DOWNLOADS. Baixe o AutoIT mais recente.
- Prossiga com a instalação e configuração do AutoIT (próximo -> concordar -> seleção de 32/64 bits -> seleção do local de instalação do arquivo -> Concluir.
- Existem 2 arquivos de configuração: a) AutoIt versão 3 e B) SciTE auto 3.
- Após a instalação ser concluída, abra o editor AutoIT.
- Vá para o local onde os arquivos de configuração são salvos, clique no arquivo ‘SciTE.exe’ para abrir o editor AutoIT. Por favor, veja a imagem abaixo para o editor AutoIT.
AutoIT_Editor:
Agora, vamos entender em resumo Como usar esta ferramenta:
- Abra o editor AutoIT.
- Precisamos escrever um código simples no editor AutoIT, necessário para a operação de upload do arquivo (o nome do arquivo a ser carregado será mencionado no código).
- Agora feche o editor e clique com o botão direito sobre ele, você verá a opção de compilar script. Escolha a opção de script de compilação (x64) para máquinas de 64 bits e escolha o script de compilação (x86) para máquinas de 32 bits.
- Assim que a etapa acima for concluída, um arquivo .exe é criado e esse arquivo será mencionado em nosso código de eclipse de selênio. Após a compilação, como pode ser visto na imagem abaixo ‘Fileupload.exe’ arquivo é criado. Agora podemos fazer uso desse arquivo no script do driver da web Selenium.
Saved_files:
A imagem abaixo nos ajuda a entender como o arquivo a ser carregado, que é form.csv, está sendo carregado ao executar o script selenium eclipse que executa o arquivo fileupload.exe.
>> Visite este página para mais detalhes sobre AutoIT.
Veremos a implementação desse método posteriormente neste tutorial.
Vantagens do AutoIT:
- AutoIT é uma ferramenta de código aberto pela qual não precisamos pagar.
- Pequenos executáveis autônomos podem ser criados usando o AutoIT.
- Ele suporta scripts fáceis de gravar ou reproduzir.
- Podemos depurar o código facilmente com comando de escrita do console .
- Ele tem a opção de criar diferentes GUIs e reconhece quase todos os controles básicos do Windows.
- É simples e fácil de usar.
Desvantagens do AutoIT:
- Funciona apenas no sistema operacional Windows
- Como o conhecimento dos princípios fundamentais da codificação é obrigatório, ele prova ser uma ótima ferramenta para profissionais, mas pode ser um pouco complicado para iniciantes.
- O AutoIT não tem suporte para Java disponível até agora.
- Os usuários precisam importar bibliotecas separadas enquanto usam diferentes funções de utilitário predefinidas.
Agora, vamos passar para o código de implementação de Upload de arquivo usando AutoIT:
Aqui, veremos como podemos lidar com o upload de arquivos usando AutoIT no Selenium. Para isso, vamos considerar o exemplo do site OrangeHRM.
Implementação de código para lidar com o upload de arquivos no Selenium usando AutoIT:
package SeleniumPrograms; import java.io.IOException; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class FileUpload { public static void main(String() args) throws IOException, InterruptedException { // TODO Auto-generated method stub WebDriver d = new FirefoxDriver(); d.manage().window().maximize(); d.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS); // for page load d.get(“https://opensource-demo.orangehrmlive.com/“); // Testing webpage d.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); // for Implicit wait WebElement uname = d.findElement(By.id('txtUsername')); // Username.........ID uname.sendKeys('Admin'); WebElement pwd = d.findElement(By.name('txtPassword')); // Password.........NAME pwd.sendKeys('admin123'); WebElement loginb = d.findElement(By.xpath('//input(@id='btnLogin')')); loginb.click(); // Loginbutton......XPATH WebElement pim = d.findElement(By.id('menu_pim_viewPimModule')); pim.click(); // Admin tab-PIM WebElement config = d.findElement(By.id('menu_pim_Configuration')); config.click(); //Configuration tab WebElement data_imp = d.findElement(By.partialLinkText('Data ')); data_imp.click(); //Data Import tab.....PARTIALLINKT // UPLOADING FILE USING AutoIT.... WebElement browser = d.findElement(By.xpath('//input(@id='pimCsvImport_csvFile')')); //Browse button browser.click(); System.out.println(“1”); Runtime.getRuntime().exec('C:\Users\Chait\Desktop\autoit\fileupload.exe'); System.out.println('2'); Thread.sleep(3000); WebElement upload = d.findElement(By.id('btnSave')); //Upload button upload.click(); System.out.println('3'); System.out.println('File Uploaded Successfully'); // Confirmation message } }
Conforme visto no código acima, a linha a seguir é muito importante, pois mostra o uso do AutoIT:
Runtime.getRuntime (). Exec (“C: \ Usuários \ Chait \ Desktop \ autoit \ fileupload.exe”);
Aqui,
- Tempo de execução : Permite que o script faça interface com o ambiente no qual o script está sendo executado.
- getRuntime (): É usado para obter o tempo de execução atual associado ao processo.
- exec (): Ele executa o script AutoIT (aqui, que é fileupload.exe).
Quando o programa executa esta linha, ele passa pelo arquivo fileupload.exe onde o código AutoIT é executado conforme mostrado abaixo:
entrevista java perguntas sobre codificação e respostas
ControlFocus('File Upload','','Edit1') ControlSetText('File Upload','','Edit1','C:UsersChaitDesktopautoitdata_file.csv') ControlClick('File Upload','','Button1')
Aqui,
- ControlFocus: Este método define o foco da entrada para a caixa de texto 'nome do arquivo'.
- ControlSetText: Este método define o caminho do arquivo. O arquivo que enviaremos na caixa de texto ‘nome do arquivo’ - seu caminho está traçado.
- ControlClick: Este método é usado para clicar no botão ‘Abrir’ da janela do carregador de arquivos.
A saída para o código acima é mostrada abaixo:
(imagem fonte )
perguntas básicas da entrevista sql e respostas para caloiros pdf
# 3) Com a ajuda da classe de robôs
Os robôs, como sabemos, ajudam no gerenciamento de várias atividades, como executar algumas tarefas, lidar com as funções do teclado, as funções do mouse e muito mais. Aqui, entenderemos certas funções que são úteis no controle do teclado e do mouse enquanto um aplicativo está sendo testado usando Selênio .
KeyEvents ou métodos para implementar a classe Robot
Na implementação da classe Robot, existem alguns métodos para a execução de scripts de teste.
Eles são mencionados abaixo:
- Pressione o botão(): Este método é chamado quando queremos pressionar qualquer tecla.
-
- Exemplo: robot.keyPress (KeyEvent. UK_ENTER );
- KeyRelease (): Este método é usado para liberar a tecla pressionada.
- Exemplo: robot.keyRelease (KeyEvent. UK_ENTER );
- MouseMove (): Usado quando há necessidade de mover o ponteiro do mouse sobre as coordenadas 'X' e 'Y'.
- Exemplo: robot.mouseMove ( coordinates.get.X () , coordinates.get.Y () );
- MousePress (): Este método é chamado quando queremos pressionar o botão esquerdo do mouse.
- Exemplo: robot.mousePress (InputEvent. BUTTON_MASK );
- MouseRelease (): Este método é usado para liberar o botão do mouse pressionado.
- Exemplo: robot.mouseRelease (InputEvent. BUTTON_DOWN_MASK );
Vantagens da classe de robô
- O upload de arquivos usando a classe de robô é fácil.
- Ele lida com as funções do teclado e mouse.
- Também é possível lidar com pop-ups.
Desvantagens da classe de robôs
- O evento de teclado ou mouse funcionaria apenas na instância atual da janela.
- Durante a execução de um evento de robô, se a execução do código for movida para outra janela, o evento do mouse ou teclado ainda permanecerá na janela anterior.
- Não é fácil alternar entre janelas diferentes.
Implementação de código para upload de arquivo usando classe de robô:
Para isso, vamos considerar o exemplo do Grammarly.com local na rede Internet. Abaixo está o código de implementação para lidar com o upload de arquivos no Selenium usando a classe Robot.
package SeleniumPrograms; import java.awt.AWTException; import java.awt.Toolkit; import java.awt.datatransfer.StringSelection; import java.util.concurrent.TimeUnit; import java.awt.Robot; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import com.sun.glass.events.KeyEvent; public class FileUpload_Robo { public static void main(String() args) throws InterruptedException, AWTException { // TODO Auto-generated method stub WebDriver drv = new FirefoxDriver(); // starting Firefox browser drv.manage().window().maximize(); // maximizing window drv.manage().timeouts().pageLoadTimeout(10, TimeUnit. SECONDS);//for page load drv.get('https://www.grammarly.com/plagiarism-checker');//open testing website drv.manage().timeouts().implicitlyWait(10, TimeUnit. SECONDS);// for Implicit wait JavascriptExecutor js = (JavascriptExecutor)drv; // Scroll operation using Js Executor js.executeScript('window.scrollBy(0,200)'); // Scroll Down(+ve) upto browse option Thread.sleep(2000); // suspending execution for specified time period WebElement browse = drv.findElement(By.linkText('Upload a file')); // using linkText, to click on browse element browse.click(); // Click on browse option on the webpage Thread.sleep(2000); // suspending execution for specified time period // creating object of Robot class Robot rb = new Robot(); // copying File path to Clipboard StringSelection str = new StringSelection('C:\Users\Chait\Desktop\File upload.docx'); Toolkit.getDefaultToolkit().getSystemClipboard().setContents(str, null); // press Contol+V for pasting rb.keyPress(KeyEvent.VK_CONTROL); rb.keyPress(KeyEvent.VK_V); // release Contol+V for pasting rb.keyRelease(KeyEvent.VK_CONTROL); rb.keyRelease(KeyEvent.VK_V); // for pressing and releasing Enter rb.keyPress(KeyEvent.VK_ENTER); rb.keyRelease(KeyEvent.VK_ENTER); } }
A saída para o código de selênio acima é mostrada abaixo:
Assim, os arquivos podem ser carregados com a ajuda de uma classe de robô, onde podemos ver o uso de eventos de entrada como pressionamento de tecla e liberação de tecla para copiar, colar, inserir, etc.
Exemplos de upload de arquivo
Vejamos alguns exemplos de upload de arquivo que são realizados com a ajuda do Selenium:
# 1) Conta do Gmail
Em uma conta do Gmail, ao enviar e-mail para alguém, você pode incluir um anexo, ou seja, um documento de arquivo que pode ser de qualquer tipo: doc, texto, csv, imagem, pdf, etc. Aqui, o upload de arquivo entra no contexto.
Para mais detalhes, consulte abaixo a captura de tela do upload do arquivo.
# 2) Upload de documentos para verificação
Normalmente, para páginas ou formulários de registro, precisamos fazer upload de documentos para verificação.
Por favor, veja a imagem abaixo para mais esclarecimentos:
ID_Proof
Reg_form
Para várias verificações, como verificação de prova, verificação de endereço, prova educacional, etc., documentos específicos precisam ser carregados.
Conclusão
Assim, neste tutorial, vimos o upload de arquivo na página HTML. Também vimos vários métodos para lidar com o upload de arquivo no Selenium (que inclui métodos como o uso de sendKeys, o uso de AutoIT e o uso da classe Robot). Também entendemos a implementação do código para lidar com o upload de arquivos no Selenium para cada um desses métodos e, finalmente, vimos alguns exemplos.
Biografia do autor - Este artigo foi escrito por Sonali Satpute, um B.E. (Computador) qualificado da MITCOE, Pune, Professional Software Tester e Content Writer.
=> Leia o guia completo do Selenium
Leitura recomendada
- Como lidar com janelas pop-up em Selenium usando AutoIT
- Como selecionar botões de rádio no Selenium WebDriver?
- Como selecionar a caixa de seleção no selênio com exemplos
- Tutorial Cucumber Selenium: Cucumber Java Selenium WebDriver Integration
- Introdução ao Selenium WebDriver - Selenium Tutorial # 8
- Tutorial do ChromeDriver Selenium: testes do Selenium Webdriver no Chrome
- Classe de robô no Selenium WebDriver com Java
- Tutorial do AutoIt - Download do AutoIt, instalação e script básico do AutoIt