„Selenium Form WebElement“: „TextBox“, mygtukas, siųstuvai (), spustelėkite ()

Formos yra pagrindiniai interneto elementai norint gauti informaciją iš svetainės lankytojų. Žiniatinklio formose yra skirtingi GUI elementai, tokie kaip teksto laukeliai, slaptažodžio laukai, žymimieji laukeliai, radijo mygtukai, išskleidžiamieji meniu, failų įvestys ir kt.

Mes pamatysime, kaip pasiekti šiuos skirtingus formos elementus naudojant „Selenium“ žiniatinklio tvarkyklę su „Java“. Selenas apima visus formos elementus kaip „WebElement“ objektą. Tai suteikia API, norėdami rasti elementus ir imtis su jais susijusių veiksmų, pavyzdžiui, įvesti tekstą į teksto laukelius, spustelėti mygtukus ir tt Mes pamatysime metodus, kuriuos galima pasiekti kiekvienam formos elementui.

Šioje pamokoje pamatysime, kaip atpažinti šiuos formos elementus

  • Įvadas į „WebElement“, „findElement“ (), „findElement“ ()
  • Įvesties dėžutė
  • Vertių įvedimas įvesties laukeliuose
  • Ištrinti vertes įvesties laukeliuose
  • Mygtukai
  • Pateikti mygtukus
  • Užbaigti kodą
  • Problemų sprendimas

Įvadas į „WebElement“, „findElement“ (), „findElement“ ()

„Selenium Web Driver“ supaprastina paprastą formos elementą kaip „ WebElement “ objektą .

Yra įvairių būdų, kuriais „WebDriver“ identifikuoja formos elementus pagal skirtingas žiniatinklio elementų savybes, tokias kaip ID, vardas, klasė, XPath, žymos pavadinimas, CSS parinkikliai, nuorodos tekstas ir kt.

Norėdami rasti elementus, žiniatinklio tvarkyklė pateikia šiuos du „WebElement“ metodus.

  • findElement () - randa vieną žiniatinklio elementą ir grįžta kaip „WebElement Selenium“ objektas.
  • findElements () - pateikia „WebElement“ objektų, atitinkančių lokatoriaus kriterijus, sąrašą.

Pažiūrėkime kodo fragmentus, kad gautume vieną elementą - teksto lauką tinklalapyje kaip „WebElement“ objektą, naudojant metodą „findElement ()“. Mes aptarsime „findElements“ () metodą, kaip rasti kelis elementus tolesnėse mokymo programose.

1 veiksmas: norėdami sukurti žiniatinklio elementų objektus, turime importuoti šį paketą

2 žingsnis: Turime iškviesti „FindElement ()“ metodą, esantį „WebDriver“ klasėje, ir gauti „WebElement“ objektą.

Žemiau rasite, kaip tai daroma.

Įvesties dėžutė

Įvesties laukeliai nurodo bet kurį iš šių dviejų tipų:

  1. Teksto laukai - seleno įvesties teksto laukeliai, kurie priima įvestas reikšmes ir rodo jas tokias, kokios yra.
  2. Slaptažodžio laukai - teksto laukeliai, kurie priima įvestas reikšmes, bet užmaskuoja jas kaip specialiųjų simbolių (dažniausiai taškų ir žvaigždžių) seriją, kad būtų išvengta neskelbtinų reikšmių.

Lokatoriai

Metodas findElement () paima vieną parametrą, kuris yra elemento lokatorius. Skirtingi lokatoriai, pvz., By.id (), By.name (), By.xpath (), By.CSSSelector () ir kt., Suranda puslapio elementus naudodami jų ypatybes, pvz., „ID“, vardą ar kelią, ir kt.

Galite naudoti tokius įskiepius kaip „Fire path“, kad gautumėte pagalbos gaunant elementų ID, „xpath“ ir kt.

Naudojant toliau pateiktą svetainės pavyzdį http://demo.guru99.com/test/login.html yra kodas, leidžiantis surasti teksto lauką „El. Pašto adresas“ naudojant identifikatorių ir lauką „Slaptažodis“ naudojant vardų lokatorių.

  1. El. Pašto teksto laukas yra pagal Id
  2. Slaptažodžio laukas yra pagal pavadinimą

sielininkai Selene

„Selenium“ siuntimo raktai () yra metodas, naudojamas atliekant bandymą, redaguojamam turiniui įvesti į teksto ir slaptažodžio laukus. Šie laukai identifikuojami naudojant lokatorius, pvz., Vardą, klasę, ID ir kt. Tai metodas, prieinamas žiniatinklio elemente. Skirtingai nuo tipo metodo, sendkeys () metodas nepakeičia esamo teksto jokiame teksto laukelyje.

Vertių įvedimas įvesties laukeliuose

Norėdami įvesti tekstą į teksto laukus ir slaptažodžio laukus, „sendKeys“ () yra būdas, kurį galima naudoti „WebElement“ selene.

Naudodamiesi tuo pačiu http://demo.guru99.com/test/login.html svetainės pavyzdžiu, taip surasime laukus Tekstas ir Slaptažodis ir įvesime tekstą į Selenium.

  1. Naudodami identifikatorių, suraskite teksto lauką „El. Pašto adresas“.
  2. Naudodami vardų ieškiklį suraskite lauką „Slaptažodis“
  3. Įveskite tekstą į „El. Pašto adresą“ naudodami „Selenium sendkeys“ metodą.
  4. Įveskite slaptažodį lauke „Slaptažodis“ naudodami metodą sendKeys ().

Ištrinti vertes įvesties laukeliuose

Aišku, () metodas yra naudojamas ištrinti į įvesties langelį. Šiam metodui nereikia parametro . Žemiau pateiktas kodo fragmentas išvalys tekstą iš laukų El. Paštas arba Slaptažodis

Mygtukai

Spustelėjimo mygtuką „Selenium“ galima pasiekti paspaudimo () metodu.

Aukščiau pateiktame pavyzdyje

  1. Suraskite mygtuką Prisijungti
  2. Norėdami prisijungti prie svetainės, spustelėkite mygtuką „Prisijungti“ prisijungimo puslapyje.

Pateikti mygtukus

Pateikimo mygtukai naudojami visai formai pateikti į serverį. Mes galime naudoti „click ()“ metodą žiniatinklio elemente kaip įprastą mygtuką, kaip tai darėme aukščiau, arba naudoti „submit“) metodą bet kuriame formos elemente esančiame žiniatinklio elemente arba pačiame pateikimo mygtuke.

Kai naudojama „Pateikti“ (), „WebDriver“ ieškos DOM, kad žinotų, kuriai formai priklauso elementas, ir tada suaktyvins jo pateikimo funkciją.

Užbaigti kodą

Čia yra visas darbinis kodas

importuoti org.openqa.selenium.By;importuoti org.openqa.selenium.WebDriver;importuoti org.openqa.selenium.chrome.ChromeDriver;importuoti org.openqa.selenium. *;viešosios klasės forma {public static void main (String [] argumentuoja) {// objektų / kintamųjų deklaravimas ir egzemplioriusSystem.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");„WebDriver“ tvarkyklė = nauja „ChromeDriver“ ();Eilutė baseUrl = "http://demo.guru99.com/test/login.html";vairuotojas.get (baseUrl);// Gaukite „WebElement“, atitinkantį el. Pašto adresą („TextField“)„WebElement“ el. Paštas = driver.findElement (By.id („el. Paštas“));// Gaukite „WebElement“, atitinkantį slaptažodžio lauką„WebElement“ slaptažodis = driver.findElement (By.name („passwd“));email.sendKeys (" Šis el. pašto adresas yra apsaugotas nuo šiukšlų. Jums reikia įgalinti JavaScript, kad galėtumėte jį pamatyti.");password.sendKeys ("abcdefghlkjl");System.out.println („Teksto lauko rinkinys“);// Teksto laukelyje ištrinamos vertėsemail.clear ();slaptažodis.skaidrus ();System.out.println („Teksto laukas išvalytas“);// Raskite mygtuką „Pateikti“„WebElement“ prisijungimas = driver.findElement (By.id („SubmitLogin“));// Spaudos metodo naudojimas formai pateiktiemail.sendKeys (" Šis el. pašto adresas yra apsaugotas nuo šiukšlų. Jums reikia įgalinti JavaScript, kad galėtumėte jį pamatyti."); password.sendKeys ("abcdefghlkjl"); prisijunkite.spustelėkite (); System.out.println ("Prisijungimas baigtas spustelėjus"); // naudojant pateikimo būdą formai pateikti. Pateikti naudojamas slaptažodžio lauke driver.get (baseUrl); driver.findElement (By.id ("el. paštas")). sendKeys (" Šis el. pašto adresas yra apsaugotas nuo šiukšlų. Jums reikia įgalinti JavaScript, kad galėtumėte jį pamatyti."); driver.findElement (By.name ("passwd")). sendKeys ("abcdefghlkjl"); driver.findElement (By.id ("SubmitLogin")). pateikti (); System.out.println ("Prisijungimas atliktas pateikiant"); //driver.close (); }}

Problemų sprendimas

Jei ieškodami elementų susiduriate su NoSuchElementException (), tai reiškia, kad elementas nerandamas puslapyje toje vietoje, kurią žiniatinklio tvarkyklė pasiekė puslapį.

  1. Dar kartą patikrinkite lokatorių naudodami „Firepath“ arba „Chrome“ tikrinti elementą.
  2. Patikrinkite, ar kode naudojama vertė skiriasi nuo „Firepath“ elemento vertės.
  3. Kai kurios savybės yra dinamiškos keliems elementams. Jei pastebėsite, kad vertė skiriasi ir keičiasi dinamiškai, apsvarstykite galimybę naudoti patikimesnius, bet sudėtingus būdus By.xpath () arba By.cssSelector ().
  4. Kartais tai gali būti ir laukimo problema, ty žiniatinklio tvarkyklė įvykdė jūsų kodą dar prieš pilnai įkeliant puslapį ir t. T.
  5. Pridėkite laukimą prieš „findElement“ () naudodami numanomą arba aiškų laukimą.

Santrauka

  • Žemiau esančioje lentelėje pateikiamos komandos, skirtos pasiekti kiekvieną aukščiau aptartą elemento tipą
Elementas Komanda apibūdinimas
Įvesties dėžutė sendKeys () naudojamas įvesti vertes į teksto laukelius
aišku () naudojamas teksto laukeliams išvalyti dabartinę vertę
Nuorodos spustelėkite () naudojamas spustelėjus nuorodą ir palaukus, kol puslapis bus įkeltas, prieš pereinant prie kitos komandos.
Pateikti mygtuką Pateikti()
  • „WebDriver“ leidžia pasirinkti daugiau nei vieną parinktį iš kelių SELECT elementų.
  • Pateikimo () metodą galite naudoti bet kuriame formos elemente. „WebDriver“ automatiškai suaktyvins formos, kuriai priklauso šis elementas, pateikimo funkciją.

Įdomios straipsniai...