• Przejdź do głównej nawigacji
  • Przejdź do treści
  • Przejdź do głównego paska bocznego
  • Przejdź do stopki
Testelka.pl

Testelka.pl

Testelka.pl - o technologiach w testowaniu oprogramowania

  • Kursy
    • DARMOWY: Java dla testerów
    • Selenium w Javie
    • Selenium w C#
    • Testy API w REST Assured
    • Selektory CSS
    • XPath
  • Materiały na raz
  • Blog
  • O Eli
  • Zaloguj się
  • DOŁĄCZ

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

Strona główna > Kursy > Kurs Selenium w C# > 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 aktywnej subskrypcji. Wykup subskrypcję 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 aktywnej subskrypcji. Wykup subskrypcję albo zaloguj się, by móc zobaczyć pełną lekcję.

Kod

Ukryta treść

Nie masz aktywnej subskrypcji. Wykup subskrypcję 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 aktywnej subskrypcji. Wykup subskrypcję albo zaloguj się, by móc zobaczyć pełną lekcję.

Reader Interactions

Komentarze

Nie masz aktywnej subskrypcji. Wykup subskrypcję albo zaloguj się, by móc komentować.

Pierwszy Sidebar

LEKCJE W KURSIE

  • Przygotowanie środowiska (DARMOWA LEKCJA)
  • Konfiguracja: Selenium i ChromeDriver (DARMOWA LEKCJA)
  • Demo Selenium i testowanie asercji (DARMOWA LEKCJA)
  • Nawigacja pomiędzy stronami (DARMOWA LEKCJA)
  • Zamykanie sesji i okna przeglądarki (DARMOWA LEKCJA)
  • Zadanie: zamykanie sesji i okna przeglądarki
  • Źródło strony, url i tytuł
  • Zadanie: źródło i tytuł strony
  • Ustawienia okna przeglądarki
  • Zadanie: ustawienia okna przeglądarki
  • Metody lokalizujące
  • Znaczniki i konsola deweloperska
  • Mechanizmy lokalizujące: nazwa klasy, id, atrybut name, nazwa taga
  • Mechanizmy lokalizujące: szukanie po linku
  • Zadanie: proste lokatory
  • Timeouty
  • Klikanie w elementy i wprowadzanie tekstu
  • Zadanie: testy logowania
  • Zasada DRY (Don't Repeat Yourself)
  • Wgrywanie pliku z dysku
  • Explicit Wait, czyli jawne czekanie
  • ExpectedConditions
  • Pobieranie informacji o elementach: położenie, rozmiar, nazwa taga, czy wyświetlony, czy zaznaczony, czy aktywny
  • Pobieranie informacji o elementach: wartości CSS, atrybuty i właściwości JavaScript oraz szukanie elementów w elemencie
  • Zadanie: informacje o elementach
  • Klikanie oraz przesuwanie kursora myszki
  • Prawy przycisk myszy oraz podwójny klik
  • Akcje na klawiaturze: przytrzymanie klawisza i wprowadzenie tekstu
  • Zadanie: akcje na klawiaturze i gesty myszy
  • Przesuwanie elementów
  • Zadanie: przesuwanie elementów
  • Ramki
  • Zadanie: ramki
  • Wykonywanie skryptów JavaScript
  • Zadanie: JavaScript
  • Ciasteczka: pobieranie ciasteczek
  • Usuwanie i dodawanie ciasteczek w Selenium
  • Co, gdy nie mamy pełnej nazwy ciasteczka?
  • Zadanie: Ciasteczka
  • Wyskakujące okienka (alerty)
  • Zadanie: wyskakujące okienka
  • Praca na kilku oknach przeglądarki
  • Zadanie: praca na kilku oknach przeglądarki
  • Listy rozwijane: pobieranie informacji
  • Listy rozwijane: zaznaczanie i odznaczanie opcji
  • Zadanie: listy rozwijane
  • Zrzuty ekranu
  • Zrzuty ekranu: przykład
  • Inicjalizacja driverów: Chrome, Firefox, Opera, Edge, IE
  • Selenium Grid
  • Selenium Grid: RemoteWebDriver
  • Selenium Grid: konfiguracja
  • Selenium Grid: konfiguracja w plikach JSON
  • Projekt testowy: testy koszyka
  • Projekt testowy: testy płatności
  • Projekt testowy: testy kuponów
  • Wprowadzenie do Page Object Model
  • Pierwszy test w POM
  • Pierwsze klasy Page Object
  • "Chainowanie" metod
  • Czekanie po akcji vs czekanie przed akcją
  • Zadanie: dwa kolejne testy w POM
  • Rozszerzenie metody AddToCart() i przepisanie dwóch kolejnych testów
  • Zadanie: testy koszyka w POM
  • Testy płatności w POM
  • Wydzielenie klas Page Object i referencje do projektów
  • Zadanie: testy płatności w POM
  • BaseTest: bazowa klasa testu
  • CustomAssert: niestandardowe asercje
  • TestHelpers: metody pomocnicze
  • Jedna metoda, ale dwa typy zwracane
  • BasePage: bazowa klasa Page Object
  • Page Object: jeden poziom głębiej
  • Parametryzacja drivera
  • Refaktoring: nowy driver
  • Driver factory
  • Konfiguracja z pliku JSON
  • Deserializacja JSONa
  • Refaktoring: system operacyjny w parametrze drivera i URL strony
  • Dane testowe z pliku JSON
  • Użycie w testach danych testowych z pliku

Footer

Elzbieta Natalia Sadel
Calle Marzo 9 1 D
41009 Sevilla
Hiszpania
NIF: Y7882076J

Zostań trenerem!

Regulamin
Polityka prywatności
Polityka wsparcia w ramach członkostwa

Koszulki i torby dla testerów

Pomoc
Kontakt

Poskładane z 💛 przez Automatela.pl

Ta strona korzysta z ciasteczek aby świadczyć usługi na najwyższym poziomie. Dalsze korzystanie ze strony oznacza, że zgadzasz się na ich użycie.ZgodaNie wyrażam zgodyPolityka prywatności