how handle scroll bar selenium webdriver
Este tutorial explica as barras de rolagem, os tipos de barras de rolagem e como lidar com a barra de rolagem no Selenium:
A barra de rolagem é uma seção longa e fina na borda da tela do computador. Usando a barra de rolagem, podemos ver todo o conteúdo ou a página completa enquanto rolamos para cima-para baixo ou esquerda-direita com a ajuda de um mouse.
Primeiro, vamos entender alguns termos como Knob, Track e Buttons que são usados com referência a barras de rolagem.
=> Verifique TODOS os tutoriais do Selenium aqui
Perguntas da entrevista de desenvolvedor sql com 4 anos de experiência
Neste tutorial, aprenderemos sobre os tipos de barras de rolagem. Também veremos a barra de rolagem em HTML, entenderemos a implementação do código para manipular a barra de rolagem no Selenium e, finalmente, conheceremos os exemplos / aplicativos em que as barras de rolagem são comumente usadas.
O que você aprenderá:
Compreendendo as barras de rolagem
A imagem abaixo mostra 2 tipos de barras de rolagem:
O que são botão, faixa e botões
Barras de rolagem têm botões em ambas as extremidades da barra, que pode ser um botão para avançar e voltar para a barra de rolagem horizontal e um botão para cima e para baixo para a barra de rolagem vertical.
Botão é a parte móvel da barra de rolagem. Ele pode ser movido da esquerda para a direita para uma barra de rolagem horizontal e para cima e para baixo para a barra de rolagem vertical.
Acompanhar é a seção da barra de rolagem na qual o botão giratório pode ser movido para visualizar o conteúdo completo.
A imagem abaixo explica claramente o conceito:
(imagem fonte )
Tipos de barras de rolagem
Basicamente, existem 2 tipos:
- Barra de rolagem horizontal
- Barra de rolagem vertical
# 1) Barra de rolagem horizontal
Uma barra de rolagem horizontal permite que o usuário role para a esquerda ou direita para visualizar todo o conteúdo da janela.
A imagem acima mostra uma barra de rolagem horizontal destacada em vermelho. Podemos ver que a barra de rolagem pode ser movida da esquerda para a direita ou vice-versa para visualizar o conteúdo completo exibido na tela.
# 2) Barra de rolagem vertical
Uma barra de rolagem vertical permite que o usuário role para cima e para baixo ou vice-versa para visualizar o conteúdo completo na janela.
A imagem acima mostra uma barra de rolagem vertical destacada em vermelho. Podemos ver que a barra de rolagem pode ser movida de cima para baixo ou vice-versa para visualizar o conteúdo completo exibido na tela.
Normalmente, as páginas da web têm muito conteúdo e são bons exemplos de barras de rolagem verticais.
como abrir um arquivo .apk no windows
Barra de rolagem em HTML
É muito usado em diferentes sites, aplicativos de sistema e quase todos os lugares. Ele permite que os usuários visualizem totalmente o conteúdo da página, rolando para cima-para baixo ou para a esquerda para a direita.
A imagem abaixo é um exemplo criado em Html:
Veja o seguinte código Html para a imagem acima:
Scroll Bar #text { width: 200px; height: 200px; border: 1px solid; font-size: 30px; overflow: scroll; text-align: center; } Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World!
Assim, podemos ver a página Html que ao rolar para baixo e para cima com a ajuda de uma barra de rolagem vertical, o conteúdo completo é visualizável.
Código para manuseio da barra de rolagem em selênio
O Selenium lida com as operações de rolagem de maneiras diferentes. Os diferentes métodos são os seguintes:
# 1) Usando a opção de rolagem embutida OU usando a classe Actions
A rolagem pode ser tratada no Selenium usando uma opção de rolagem embutida, conforme mostrado no código de implementação abaixo:
A sintaxe da barra de rolagem usando opções de rolagem integradas:
Actions act = new Actions(driver); //Object of Actions class act.sendKeys(Keys. PAGE_DOWN ).build().perform(); //Page Down act.sendKeys(Keys. PAGE_UP ).build().perform(); //Page Up
Código para lidar com a barra de rolagem usando uma opção de rolagem embutida.
package SeleniumPrograms; import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.interactions.Actions; public class Scroll { public static void main(String() args) throws InterruptedException { WebDriver dr = new FirefoxDriver(); dr.manage().window().maximize(); dr.get('https://opensource-demo.orangehrmlive.com/'); //testing webpage WebElement uname = dr.findElement(By.id('txtUsername')); //username uname.sendKeys('Admin'); WebElement pwd = dr.findElement(By.name('txtPassword')); //password pwd.sendKeys('admin123'); WebElement login_button = dr.findElement(By.xpath('//input(@id='btnLogin')')); login_button.click(); //login button WebElement admin = dr.findElement(By.id('menu_admin_viewAdminModule')); admin.click(); WebElement job = dr.findElement(By.id('menu_admin_Job')); job.click(); WebElement jobtitle_link = dr.findElement(By.linkText('Job Titles')); jobtitle_link.click(); Actions act = new Actions(dr); act.sendKeys(Keys.PAGE_DOWN).build().perform(); //Page Down System.out.println('Scroll down perfomed'); Thread.sleep(3000); act.sendKeys(Keys.PAGE_UP).build().perform(); //Page Up System.out.println('Scroll up perfomed'); Thread.sleep(3000); } }
No código do programa acima, a rolagem é tratada no Selenium usando Ações classe. Isso é feito criando um objeto da classe Actions passando o driver. Além disso, vimos o uso de uma opção de rolagem embutida para rolagem para cima, bem como para rolagem para baixo.
A saída do código acima:
(imagem fonte )
Assim, podemos ver as operações de rolagem para baixo e para cima realizadas com a ajuda do Selenium Webdriver usando uma opção de rolagem embutida OU usando o Ações método de classe.
# 2) Usando JavascriptExecutor OU por Pixel
Este método ajuda a rolar a página da web, mencionando a contagem de pixels pela qual desejamos rolar para cima ou para baixo. Abaixo está o código de implementação para Scrolling by Pixel ou usando JavascriptExecutor.
package SeleniumPrograms; 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 ScrollBar { public static void main(String() args) throws InterruptedException { WebDriver dr = new FirefoxDriver(); dr.manage().window().maximize(); dr.get('https://opensource-demo.orangehrmlive.com/'); //testing webpage WebElement uname = dr.findElement(By.id('txtUsername')); //username uname.sendKeys('Admin'); WebElement pwd = dr.findElement(By.name('txtPassword')); //password pwd.sendKeys('admin123'); WebElement login_button = dr.findElement(By.xpath('//input(@id='btnLogin')')); login_button.click(); //loginbutton JavascriptExecutor js = (JavascriptExecutor)dr; js.executeScript('window.scrollBy(0,70)'); //Scroll Down(+ve) Thread.sleep(3000); System.out.println('Scrolled down..'); js.executeScript('window.scrollBy(0,-50)'); //Scroll Up (-ve) Thread.sleep(3000); System.out.println('Scrolled up..'); } }
A saída do código acima:
A imagem acima mostra a rolagem para baixo realizada pelo valor do pixel, conforme mencionado no código acima, em 70 (para baixo). Da mesma forma, a operação de rolagem para cima é realizada fornecendo valor de pixel = -50 (ou seja, para cima).
A imagem abaixo mostra a rolagem para cima (em 50):
Assim, neste método, utilizamos JavascriptExecutor e executamos Scroll para cima e para baixo fornecendo valores de pixel.
Exemplos / Aplicações
Existem vários aplicativos ou exemplos de barras de rolagem. Alguns deles são descritos abaixo:
# 1) Barras de rolagem em arquivos Excel:
Como sabemos, os arquivos do Excel possuem uma grande quantidade de dados armazenados. Torna-se difícil visualizar todo o conteúdo em uma única página. Portanto, a rolagem pode ajudar o usuário a visualizar os dados que não estão presentes na tela atual.
melhores desenvolvedores de jogos para trabalhar
# 2) Rolagem no bloco de notas
Na imagem acima, as barras de rolagem podem ser vistas horizontal e verticalmente, fornecendo visibilidade completa dos dados no documento do bloco de notas.
# 3) Uso da barra de rolagem em navegadores
Ao ler os dados, podemos ver apenas metade dos dados na tela do navegador. A rolagem ajuda a mover para frente, para trás e para cima e para baixo para ter a visão inteira. Portanto, ao fazer uso de barras de rolagem horizontais e verticais, o conteúdo completo da tela do navegador pode ser visualizado.
Existem muitos outros exemplos que ajudam os usuários a visualizar os dados completos exibidos na tela.
Conclusão
Neste tutorial, aprendemos sobre as barras de rolagem e seus tipos. Também vimos como criar e usar a barra de rolagem na página HTML
Nós entendemos os métodos de implementação de código para lidar com barras de rolagem usando Selenium, ou seja, opção de rolagem embutida / usando classe de ações e usando JavascriptExecutor / por Pixel e passamos por alguns aplicativos onde as barras de rolagem são comumente usadas.
=> Leia o guia completo do Selenium
Leitura recomendada
- Como lidar com alertas / pop-ups no Selenium WebDriver - Tutorial do Selenium nº 16
- Como fazer upload de arquivos usando o Selenium Webdriver - 3 métodos
- Como selecionar botões de rádio no Selenium WebDriver?
- Como executar o Selenium WebDriver em diferentes navegadores populares
- Manipulando iFrames usando o método Selenium WebDriver switchTo ()
- Guia para gerar relatórios de extensão no Selenium WebDriver
- Eixos XPath para XPath dinâmico no Selenium WebDriver
- Integração do Jenkins com o Selenium WebDriver: tutorial passo a passo