Zapisy otwarte! Dołącz do kursu Selenium w Javie lub Selenium w C#. Tylko do 23.09.2021 do godz. 21:00. Zapisz się tutaj.

Selenium w C# 28. Akcje na klawiaturze: przytrzymanie klawisza w Selenium i wprowadzenie tekstu

Po lekcjach dotyczących akcji wykonywanych za pomocą myszki, w tej lekcji poznasz akcje jakie możemy wykonać na klawiaturze w tym przytrzymanie klawisza w Selenium oraz wprowadzanie tekstu.

Przytrzymanie klawisza w Selenium i wprowadzenie tekstu: linki i materiały

Wprowadzenie tekstu

Do wprowadzenia tekstu mamy w klasie Action dwie metody, analogicznie do metod już poznanych. Jedna z nich jako parametr przyjmuje tylko tekst (string), który chcemy przekazać np. do formularza, a druga dodatkowo przyjmuje także element, do którego tekst chcemy przesłać. Jeżeli nie podamy tego elementu, to trzeba będzie w niego kliknąć wcześniej, żeby móc przekazać tekst.

Ukryta treść

Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.

Przytrzymanie klawisza

Czasami potrzebujemy zasymulować przytrzymanie jakiegoś klawisza, np. wtedy, kiedy chcemy zaznaczyć kilka elementów przytrzymując CTRL. Do takiego rodzaju akcji mamy parę metod KeyDown() oraz KeyUp(). Jak sama nazwa nam już wskazuje, pierwsza metoda służy do wciśnięcia danego klawisza, a ostatnia do jego zwolnienia. Pomiędzy tymi akcjami możemy wrzucić coś, co chcemy wykonywać, gdy klawisz będzie wciśnięty.

Te metody też mają dwie formy: albo z jednym parametrem typu string albo dodatkowo jeszcze z elementem.

Ukryta treść

Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.

Kod

Ukryta treść

Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.

using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Interactions;
using System;
using System.Collections.Generic;
using System.Text;

namespace TestowyProjekt.Other
{
    class KeyboardActionsExamples
    {
        IWebDriver driver;
        Actions actions;

        [SetUp]
        public void Setup()
        {
            driver = new ChromeDriver();
            driver.Manage().Window.Position = new System.Drawing.Point(8, 30);
            driver.Manage().Window.Size = new System.Drawing.Size(1290, 730);
            driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(10);
            driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);
            actions = new Actions(driver);
            driver.Navigate().GoToUrl("https://fakestore.testelka.pl/");
            driver.FindElement(By.CssSelector(".woocommerce-store-notice__dismiss-link")).Click();
        }

        [TearDown]
        public void QuitDriver()
        {
            driver.Quit();
        }
        [Test]
        public void SendKeysTest()
        {
            driver.Navigate().GoToUrl("https://fakestore.testelka.pl/moje-konto");
            IWebElement loginField = driver.FindElement(By.CssSelector("#username"));
            ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", loginField);
            //actions.SendKeys(loginField, "testowy user").Build().Perform();
            //actions.Click(loginField).SendKeys("testowy user").Build().Perform();
            actions.KeyDown(Keys.Shift).SendKeys(loginField, "testowy").KeyUp(Keys.Shift).SendKeys(" user").Build().Perform();
        }
        [Test]
        public void SelectMultipleElementsTest()
        {
            driver.Navigate().GoToUrl("https://fakestore.testelka.pl/actions-przyklady/");
            driver.SwitchTo().Frame(0);
            IWebElement list = driver.FindElement(By.CssSelector("ol#selectable"));
            ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", list);
            IList<IWebElement> listElements = list.FindElements(By.CssSelector("li"));
            actions.KeyDown(Keys.Control).Click(listElements[1]).Click(listElements[3]).KeyUp(Keys.Control).Build().Perform();
            
        }

    }
}

Ukryta treść

Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.

Wsparcie merytoryczne

Nie masz dostępu do wsparcia merytorycznego dla tego kursu. Wykup dostęp albo zaloguj się, by móc zadawać pytania.