Cara Mengesahkan Petua Alat menggunakan Selenium WebDriver

Isi kandungan:

Anonim

Petua alat di Selenium

A Tooltip dalam Selenium adalah teks yang muncul apabila berlegar tetikus ke atas sesuatu objek pada halaman web. Objek boleh berupa pautan, gambar, butang, kawasan teks, dan lain-lain. Teks keterangan alat sering memberikan lebih banyak maklumat mengenai objek di mana pengguna melayang di atas kursor tetikus.

Petua alat secara tradisional dilaksanakan sebagai atribut 'tajuk' pada elemen. Nilai atribut ini ditunjukkan sebagai petua alat pada tetikus tetikus. Ini adalah teks statik yang memberikan maklumat elemen tanpa gaya.

Sekarang, ada banyak plugin yang tersedia untuk pelaksanaan 'petua alat'. Petua alat lanjutan dengan gaya, rendering, gambar dan pautan dilaksanakan menggunakan plugin JavaScript / JQuery atau menggunakan Petua Alat CSS.

  • Untuk mengakses atau memverifikasi petua alat statik yang dilaksanakan menggunakan atribut HTML "title", kita hanya dapat menggunakan kaedah getAttribute ("title") dari WebElement. Nilai yang dikembalikan kaedah ini (yang merupakan teks petua alat) dibandingkan dengan nilai yang diharapkan untuk pengesahan.
  • Untuk bentuk implementasi petua alat yang lain, kita harus menggunakan "API Interaksi Pengguna Lanjutan" yang disediakan oleh Pemandu Web untuk membuat kesan hover tetikus dan kemudian mendapatkan petua alat untuk elemen tersebut.

Ringkas API Interaksi Pengguna Lanjutan:

API Interaksi Pengguna Lanjutan menyediakan API untuk tindakan pengguna seperti drag and drop, hovering, multi selecting, tekan dan lepaskan kekunci dan tindakan lain menggunakan papan kekunci atau tetikus di laman web.

Anda boleh merujuk pautan ini untuk maklumat lebih lanjut mengenai API.

https://seleniumhq.github.io/selenium/docs/api/java/index.html?org/openqa/selenium/interactions/Actions.html

Di sini, mari kita lihat bagaimana menggunakan beberapa kelas dan kaedah yang kita perlukan untuk memindahkan elemen gelangsar dengan mengimbangi.

Langkah 1) Untuk menggunakan API, pakej / kelas berikut perlu diimport:

Langkah 2) Buat objek kelas "Tindakan" dan bina Urutan tindakan pengguna. Kelas tindakan digunakan untuk membina urutan tindakan pengguna seperti moveToElement (), dragAndDrop () dll. Pelbagai kaedah yang berkaitan dengan tindakan pengguna disediakan oleh API.

Objek pemacu disediakan sebagai parameter kepada pembangunnya.

Langkah 3) Buat Objek Tindakan menggunakan kaedah build () kelas "Tindakan". Panggil kaedah perform () untuk melaksanakan semua tindakan yang dibina oleh objek Actions (pembina di sini).

Kami telah melihat cara menggunakan beberapa kaedah Tindakan pengguna yang disediakan oleh API - clickAndHold (element), moveByOffset (10,0), release (). API menyediakan banyak kaedah seperti itu.

Rujuk pautan untuk maklumat lebih lanjut.

Cara mendapatkan Teks Petua Alat di Selenium Webdriver

Mari lihat demonstrasi mengakses dan mengesahkan petua alat dalam senario mudah

  • Senario 1: Petua alat dilaksanakan menggunakan atribut "title"
  • Senario 2: Petua alat dilaksanakan menggunakan pemalam jQuery.

Senario 1: Atribut 'tajuk' HTML

Untuk kes ini, mari kita ambil contoh laman web - http://demo.guru99.com/test/social-icon.html.

Kami akan cuba mengesahkan petua alat "github" di bahagian kanan atas halaman.

Untuk melakukannya, pertama-tama kita akan menemui elemen dan mendapatkan atribut 'title' dan mengesahkan dengan teks hujung alat yang diharapkan.

Oleh kerana, kami menganggap tip alat berada dalam atribut "title", kami bahkan tidak mengotomatiskan kesan hover tetikus tetapi hanya mengambil nilai atribut menggunakan kaedah "getAttribute ()".

Inilah kodnya

import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium. *;Petua Alat kelas awam {utama kekosongan statik awam (String [] args) {String baseUrl = "http://demo.guru99.com/test/social-icon.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Pemacu WebDriver = ChromeDriver baru ();driver.get (baseUrl);Rentetan yang diharapkanTooltip = "Github";// Cari ikon Github di kanan atas tajukWebElement github = driver.findElement (By.xpath (".//*[@ class = 'soc-ico show-round'] / a [4]"));// dapatkan nilai atribut "title" ikon githubString sebenarnyaTooltip = github.getAttribute ("tajuk");// Tegaskan nilai petua alat seperti yang diharapkanSystem.out.println ("Tajuk Sebenar Petua Alat" + Petua sebenar);jika (sebenarnyaTooltip.equals (dijangkaTooltip)) {System.out.println ("Kes Ujian Lulus");}pemandu.tutup ();}}

Penjelasan kod

  1. Cari WebElement yang mewakili ikon "github".
  2. Dapatkan atribut "title" dengan menggunakan kaedah getAttribute ().
  3. Tegaskan nilai dengan nilai petua alat yang diharapkan.

Senario 2: Pemalam JQuery:

Terdapat banyak plugin JQuery yang tersedia untuk melaksanakan petua alat, dan masing-masing mempunyai bentuk pelaksanaan yang sedikit berbeza.

Beberapa plugin mengharapkan HTML petua alat sentiasa ada di sebelah elemen yang mana petua alat itu berlaku sedangkan yang lain membuat tag "div" dinamik, yang muncul dengan cepat sambil melayang di atas elemen.

Untuk demonstrasi kami, mari kita pertimbangkan cara "petua alat jQuery Tools" pelaksanaan petua alat.

Di sini dalam URL - http://demo.guru99.com/test/tooltip.html anda dapat melihat demo di mana tetikus melayang di atas "Muat turun sekarang", kami mendapat petua alat lanjutan dengan gambar, latar belakang keterangan, meja dan pautan di dalamnya yang boleh diklik.

Sekiranya anda melihat sumber di bawah, anda dapat melihat bahawa tag div yang mewakili petua alat selalu ada di sebelah tag pautan "Muat turun sekarang". Tetapi, kod di dalam tag skrip di bawah mengawal kapan ia perlu muncul.

Mari cuba mengesahkan hanya teks pautan dalam petua alat untuk demonstrasi kami di sini.

Kami pertama kali akan menemui WebElement yang sesuai dengan "Muat turun sekarang". Kemudian dengan menggunakan Interactions API, kita akan beralih ke elemen (mouse-hover). Seterusnya, kita akan menemui WebElement yang sesuai dengan pautan di dalam petua alat yang dipaparkan dan mengesahkannya terhadap teks yang diharapkan.

Inilah kodnya

import org.openqa.selenium.interactions.Action;import org.openqa.selenium.interactions.Actions;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium. *;kelas awam JqueryToolTip {utama kekosongan statik awam (String [] args) {String baseUrl = "http://demo.guru99.com/test/tooltip.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Pemacu WebDriver = ChromeDriver baru ();Rentetan yang diharapkanTooltip = "Apa yang baru dalam 3.2";driver.get (baseUrl);Muat turun WebElement = driver.findElement (By.xpath (".//*[@ id = 'download_now']"));Pembangun tindakan = tindakan baru (pemandu);builder.clickAndHold (). moveToElement (muat turun);builder.moveToElement (muat turun) .build (). perform ();Alat WebElementTipElement = driver.findElement (By.xpath (".//*[@ class = 'box'] / div / a"));String sebenarnyaTooltip = toolTipElement.getText ();System.out.println ("Tajuk Sebenar Petua Alat" + Petua sebenar);jika (sebenarnyaTooltip.equals (dijangkaTooltip)) {System.out.println ("Kes Ujian Lulus");}pemandu.tutup ();}}

Penjelasan Kod

  1. Cari WebElement yang sesuai dengan elemen "muat turun sekarang" yang akan kita arahkan tetikus.
  2. Dengan menggunakan API Interaksi, tetikus mengarahkan ke "Muat turun sekarang".
  3. Dengan andaian keterangan alat dipaparkan, cari WebElement yang sesuai dengan pautan di dalam petua alat iaitu tag "a".
  4. Sahkan teks keterangan pautan yang diambil menggunakan getText () terhadap nilai jangkaan yang telah kami simpan di "expectToolTip"

Ringkasan:

Dalam tutorial ini, anda telah mempelajari cara mengakses Petua Alat menggunakan pemacu Web Selenium.

  • Petua Alat dilaksanakan dengan cara yang berbeza -
    • Pelaksanaan asas dibuat berdasarkan atribut "title" HTML. getAttribute (tajuk) mendapat nilai petua alat.
    • Pelaksanaan tip alat lain seperti JQuery, petua alat CSS memerlukan API Interaksi untuk membuat kesan tetikus tetikus
  • API Interaksi Pengguna Lanjutan
    • moveToElement (elemen) kelas Tindakan digunakan untuk mengarahkan tetikus elemen ke tetikus.
    • Build () kaedah kelas Tindakan membina urutan tindakan pengguna menjadi objek Tindakan.
    • Perform () of Action class melaksanakan semua urutan tindakan pengguna sekaligus.
  • Untuk mengesahkan petua alat, pertama-tama kita perlu mengarahkan kursor ke elemen, kemudian mencari elemen yang sesuai dengan hujung alat dan mendapatkan teks atau nilai lain untuk mengesahkan terhadap nilai yang diharapkan.