Tutorial Selenium - Sinau Otomatis Browser nganggo Selenium WebDriver

Selenium minangka seperangkat perpustakaan sing digunakake kanggo niru interaksi pangguna karo browser.

Pangguna nulis skrip nggunakake perpustakaan selenium kanggo simulasi interaksi browser pangguna sing umum, kayata navigasi menyang sawijining kaca, ngeklik tombol lan ngisi formulir.

Selenium umume digunakake ing proyek sing nggawe aplikasi front-end (UI) web. Iki digunakake kanggo ngotomatisasi skenario sing niru interaksi pangguna karo aplikasi web.




Instal Selenium

Kanggo nggunakake Selenium WebDriver ing sawijining proyek, luwih dhisik kudu nginstal Selenium Core lan WebDriver Binaries.

Kita uga kudu nyetel dalan kanggo saben driver bisa dieksekusi.


Yen sampeyan pengin nggunakake Selenium karo Java, mula cara paling gampang kanggo nginstal Selenium yaiku liwat katergantungan Maven ing proyek sampeyan pom.xml file:




org.seleniumhq.selenium
selenium-java
3.141.59

Kanggo mbukak tes Selenium ing browser Google Chrome utawa Firefox, sampeyan kudu nambah katergantungan sing relevan ing pom.xml file:

Browser Google Chrome


org.seleniumhq.selenium
selenium-chrome-driver
3.141.59

Browser Firefox


org.seleniumhq.selenium
selenium-firefox-driver
3.141.59

Instal Binary WebDriver banjur Setel Path

Kanggo nglakokake tes Selenium ing browser tartamtu, sampeyan kudu nginstal binari WebDriver khusus browser sing cocog lan path sing bener disetel.

Chrome Kanggo nyetel dalan menyang kromium sing bisa dieksekusi ing sistem MacOS, sampeyan bisa nggunakake:


$ export PATH='$PATH:/path/to/chromedriver'

Sampeyan uga bisa nyetel dalan kanthi program, langsung menyang kode:

System.setProperty('webdriver.chrome.driver', '/path/to/chromedriver');

Firefox - Geckodriver:

System.setProperty('webdriver.gecko.driver', '/path/to/geckodriver');

Edge:

System.setProperty('webdriver.edge.driver', 'C:/path/to/MicrosoftWebDriver.exe');

Internet Explorer:


System.setProperty('webdriver.ie.driver', 'C:/path/to/IEDriver.exe');

Pembalap Browser Instan

Sawise nginstal Selenium, sabanjure nggawe instantiate driver browser tartamtu kanggo mbukak tes UI.

Tes selenium diluncurake karo antarmuka pangguna aplikasi lan mbutuhake browser supaya bisa digunakake. Kita bisa nemtokake browser sing pengin digunakake kanggo nyoba lan banjur instal driver sing cocog.

Cathetan:Tes selenium mung digunakake kanggo Otomatisasi UI lan tes mbukak nglawan browser.

Chrome

import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; WebDriver driver = new ChromeDriver();

Firefox

import org.openqa.selenium.WebDriver; import org.openqa.selenium.Firefox.FirefoxDriver; WebDriver driver = new FirefoxDriver();

Edge

import org.openqa.selenium.WebDriver; import org.openqa.selenium.edge.EdgeDriver; WebDriver driver = new EdgeDriver();

Internet Explorer

import org.openqa.selenium.WebDriver; import org.openqa.selenium.ie.InternetExplorerDriver; WebDriver driver = new InternetExplorerDriver();

Navigasi Browser

Sawise duwe sesi WebDriver aktif lan ngluncurake browser, perkara sabanjure sing arep ditindakake yaiku navigasi menyang kaca lan mbukak tes.

Selenium WebDriver nyedhiyakake sawetara cara sing migunani kanggo sesambungan karo browser. Kita bisa nindakake pandhu arah lan entuk informasi babagan kaca saiki.


Kanggo navigasi menyang URL, kita duwe rong pilihan:

//The short form driver.get('https://devqa.io'); //The long form driver.navigate().to('https://devqa.io');

Mulih

Selenium back() cara simulasi ngeklik tombol mburi browser:

driver.navigate().back();

Maju

Selenium forward() cara simulasi ngeklik tombol maju browser:

driver.navigate().forward();

Refresh Kaca

Selenium refresh() cara simulasi ngeklik tombol refresh browser:


driver.navigate().refresh();

Entuk Informasi Kaca Saiki

Selenium uga nyedhiyakake cara kanggo entuk url, judhul kaca lan sumber kaca saiki.

Goleki URL Saiki

Kita bisa entuk URL kaca saiki:

driver.getCurrentUrl();

Entuk Judhul Kaca

Kita bisa entuk judhul kaca saiki:

driver.getTitle();

Entuk Sumber Kaca

Kita bisa entuk sumber kaca saiki:

driver.getPageSource();

Nutup lan mungkasi Sidang Browser

Kanggo nutup jendhela browser saiki:

driver.close(); Cathetan:Nutup jendhela browser ora mungkasi sesi WebDriver.

Kanggo mungkasi sesi WebDriver ing pungkasan panggunaan tes:

driver.quit();

Cara mandheg bakal:

  • Tutup kabeh windows sing ana gandhengane karo sesi WebDriver kasebut
  • Pateni proses browser
  • Pateni proses driver


Locator Selenium - Cara Golek Unsur Web

Sadurunge bisa sesambungan karo elemen web, kita kudu nemokake elemen kasebut ing kaca html.

Salah sawijining katrampilan paling penting saka insinyur otomasi tes sing digunakake karo Selenium WebDriver yaiku supaya bisa nggunakake metode sing cocog kanggo nemokake elemen ing sawijining kaca.

Contone, yen pengin ngeklik link, verifikasi manawa pesen ditampilake utawa klik tombol, luwih dhisik kudu nemokake elemen kasebut.

Selenium WebDriver nyedhiyakake macem-macem cara kanggo nemokake elemen ing sawijining kaca.

Locator nerangake apa sing pengin ditemokake ing sawijining kaca. Ing Jawa, kita nggawe locator kanthi nggunakake By kelas.

Contone, yen pengin golek h1 judhul judhul ing sawijining kaca, bakal ditulis

WebElement h1Element = driver.findElement(By.tagName('h1'));

Utawa, yen kita pengin nemokake kabeh elemen paragraf ing sawijining kaca, kita bakal nggunakake

List pElements = driver.findElements(By.tagName('p'));

Kanthi teks link

Cara iki nemokake elemen kanthi teks sing pas sing ditampilake. Cara iki biasane dadi pencari pilihan kanggo tautan ing sawijining kaca.

Contone, umpamane kita duwe link iki ing sawijining kaca:

Forgotten Password

Banjur, link bisa ditemokake kanthi nggunakake:

driver.findElement(By.linkText('Forgotten Password'));

Kanthi teks link parsial

Nalika kita ora yakin persis karo tembung teks link nanging pengin golek link utawa link sing ngemot teks tartamtu, kita bisa nggunakake

driver.findElement(By.partialLinkText('Forgotten '));

utawa

driver.findElement(By.partialLinkText('Password'));

Sampeyan kudu ati-ati nalika nggunakake findElement kanthi locator iki amarga bisa uga ana elemen liyane sing ngemot teks parsial sing padha, mula iki ora digunakake kanggo nemokake elemen dhewe. Paling apik digunakake kanggo nemokake klompok elemen nggunakake metode findElements

Miturut atribut kelas

Iki nemokake elemen miturut nilai atribut kelas. Iki mung bisa digunakake kanggo elemen sing duwe atribut kelas, nanging dudu pamilih sing apik kanggo nggunakake findElement cara

Nggunakake conto sing padha ing ndhuwur kanthi tautan, tautan 'Lali Sandi' duwe siji kelas CSS: btn sing bisa digunakake kanggo nemokake

Forgotten Password

Banjur, tautan bisa ditemokake kanthi nggunakake:

driver.findElement(By.className('btn')); Cathetan:Atribut kelas digunakake kanggo kaca gaya, mula ana kemungkinan akeh elemen sing duwe kelas sing padha.

Miturut id

Miturut id, temokake elemen miturut nilai atribut id. Link ing conto ing ndhuwur duwe id sing bisa digunakake:

Forgotten Password

Banjur, tautan bisa ditemokake kanthi nggunakake:

driver.findElement(By.id('change-password'));

Yen atribut id kasedhiya, mula kudu digunakake minangka pilihan sing luwih dhisik.

Miturut jeneng

Temokake elemen miturut nilai atribut jenenge. Biasane, mung bisa digunakake kanggo nemokake elemen wujud sing dibangun nggunakake: , , , lan .

Ing kaca mlebu khas, sampeyan duwe kolom input kaya:

Banjur kita bisa nemokake kolom email kanthi atribut jeneng input

driver.findElement(By.name('email'));

Miturut jeneng tag

Locator iki nemokake unsur kanthi jeneng tag HTML. Amarga asring ana pirang-pirang panggunaan tag sing paling akeh, mula ora becik nggunakake metode iki kanggo nemokake siji elemen.

Panggunaan khas kanggo nemokake elemen miturut jeneng tag yaiku kanggo nemokake judhul kaca, amarga mung ana siji:



Welcome to DevQA!

Banjur bisa nemokake kolom judhul kanthi jeneng tag:

driver.findElement(By.tagName('h1'));

Miturut pamilih Css

Goleki elemen liwat mesin W3 CSS Selector sing ndasari driver. Locator pamilih CSS kuat amarga bisa digunakake kanggo nemokake elemen ing sawijining kaca.

Forgotten Password

Banjur kita bisa nemokake kolom email kanthi atribut jeneng input

driver.findElement(By.cssSelector('#change-password'));

Ing kene, # makili id ​​unsur. Lan . notasi nggambarake atribut kelas unsur.

Contone:

driver.findElement(By.cssSelector('.btn'));

Gegandhengan:



Miturut XPath

Lokator XPath minangka pamilih paling kompleks sing digunakake. Sampeyan mbutuhake ilmu ing basa pitakon XPath, mula yen sampeyan ora lancar nganggo basa pitakon, sampeyan bakal angel golek elemen nggunakake pitakon XPath.

Ayo goleki conto panggunaan XPath kanggo HTML iki:

Change Password

Banjur kita bisa nemokake kolom email kanthi atribut jeneng input

driver.findElement(By.xpath('//a[@id='change-password']'));

Berinteraksi karo Elemen Web

Sawise nemokake elemen ing kaca kasebut, kita bisa sesambungan karo macem-macem cara sing diwenehake selenium.

Selenium WebDriver nyedhiyakake sawetara cara kanggo sesambungan karo elemen web kayata ngeklik tombol kirim lan ngetik teks ing kolom input.

Sing WebElement kelas duwe sawetara cara sing bisa digunakake kanggo sesambungan karo elemen kaca. Sing paling umum yaiku:

  • click()
  • clear()
  • sendKeys()
  • submit()

Klik

Sing click() cara digunakake kanggo ngeklik elemen web kayata tautan utawa tombol.

Tuladha:

Menu WebElement mToggle = driver.findElement(By.id('menu-toggle')); mToggle.click();

Bening

Sing clear() cara mbusak nilai kolom input.

Tip:Disaranake nggunakake .cetha () cara sadurunge ngetik teks ing kolom input.

Tuladha:

WebElement username = driver.findElement(By.id('username')); username.clear();

SendKeys

Kita nggunakake sendKeys() cara kanggo ngetik karakter menyang kothak input kothak.

Tuladha:

WebElement username = driver.findElement(By.id('username')); username.sendKeys('jondoe');

Tuladha - Isi formulir

Ing ngisor iki minangka conto cara nggunakake Selenium kanggo ngisi formulir

username:

Last name:


WebElement username = driver.findElement(By.id('username'));
username.sendKeys('jondoe');
WebElement password = driver.findElement(By.id('password'));
password.sendKeys('secret');
WebElement submit = driver.findElement(By.cssSelector('input[type='submit']'));
submit.click();

Saiki kita wis ngrampungake dhasar-dhasar Selenium WebDriver, saiki wayahe nggawe kerangka kerja.



Gawe Kerangka Selenium

Sinau babagan cara nggawe kerangka kerja selenium saka awal.

Pérangan pisanan tutorial nyedhiyakake langkah-langkah babagan cara nggawe kerangka kerja WebDriver selenium nggunakake Java, Maven lan TestNG.

Bagean kapindho fokus kanggo nyusun tes selenium adhedhasar Model Objek Kaca sing misuwur.