Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
110 lines (99 sloc) 3.18 KB

Executar scroll da barra de rolagem com JavascriptExecutor

Após criar um Unit Test Project e importar as bibliotecas abaixo:

NUnit
NUnit 3 - NUnit Project Loader Extension
NUnit 3 - NUnit V2 Framework Driver Extension
NUnit 3 - NUnit V2 Result Writer Extension
NUnit 3 - Team City Event Listener Extension
NUnit 3 - Visual Studio Project Loader Extension
NUnit Console Runner Version 3 (No Extensions)
NUnit Console Runner Version 3 With Extensions
NUnit Console Version 3
NUnit Test Adapter for VS2012, VS2013 ans VS2015
Selenium WebDriver
Selenium WebDriver Support Classes
Selenium.WebDriver.ChromeDriver //caso deseje executar testes no navegador Chrome
Selenium.WebDriver.IEDriver //caso deseje executar testes no navegador Internet Explorer
Selenium.WebDriver.Firefox //caso deseje executar testes no navegador Firefox
Selenium.Support

Na classe pública do projeto, localizada logo abaixo do [TextFixture], informe a seguinte variável:

    [TestFixture]
    public class NomeDoProjeto
    {
        public IWebDriver driver;
        IJavaScriptExecutor js; // Javascript Executor

Declare antes do código do teste, no [Test]:

js = (IJavaScriptExecutor)driver; //Permite executar Javascript

No script de teste, utilizamos os seguintes comandos:

js.ExecuteScript("window.scrollBy(0, 300)", ""); //rola para baixo
Thread.Sleep(2000);

js.ExecuteScript("window.scrollBy(300, 0)", ""); //rola para cima
Thread.Sleep(2000);

Veja o método funcionando

Copie e cole o código abaixo, dê um Build e execute o teste.

using System;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using System.Drawing.Imaging;
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.Chrome;
using System.IO;
using System.Collections;

namespace SeleniumTests
{
    [TestFixture]
    public class NomeDoProjeto
    {
        public IWebDriver driver;
        private string baseURL;
        IJavaScriptExecutor js; // Javascript Executor

        [SetUp]
        public void SetupTest()
        {
            driver = new ChromeDriver();
            driver.Manage().Window.Maximize();
            baseURL = "http://www.seusite.com.br"; //informe o site desejado
        }

        [TearDown]
        public void TeardownTest()
        {
            try
            {
                driver.Quit();
            }
            catch (Exception)
            {
                // Ignore errors if unable to close the browser
            }
        }

        [Test]

        public void NomeDoTeste()
        {

            js = (IJavaScriptExecutor)driver; //Permite executar Javascript

            driver.Navigate().GoToUrl(baseURL);
            Thread.Sleep(1000);
            js.ExecuteScript("window.scrollBy(0, 300)", ""); //rola para baixo
            Thread.Sleep(1500);
            js.ExecuteScript("window.scrollBy(0, -300)", ""); //rola para cima
            Thread.Sleep(2000);
            driver.Quit();
        }
    }
}

O código acessa a página base desejada, rola a página para baixo e depois rola a página para cima.

Dúvidas me contate! carol.ciola@gmail.com