Cara Memverifikasi Tooltip di Selenium

โšก Ringkasan Cerdas

Verifikasi Tooltip di Selenium WebDriver mencakup dua pola andal untuk menampilkan teks tooltip: membaca atribut judul HTML secara langsung dan menggunakan API Actions untuk mengarahkan kursor ke elemen yang menampilkan teks secara dinamis. JavaTooltip berbasis skrip atau jQuery.

  • ๐Ÿ’ก Prinsip Utama: Tooltip adalah teks yang akan terlihat saat kursor diarahkan ke atasnya (hover), sehingga strategi verifikasi bergantung pada di mana browser menyimpan teks tersebut di DOM.
  • ๏ธ Tooltip Statis: Untuk tooltip berbasis judul HTML, panggil getAttribute("title") or getDomAttribute("title") dan bandingkan dengan string yang diharapkan.
  • ๏ธ Tooltip Dinamis: Untuk tooltip jQuery, CSS, atau plugin, gunakan kelas Actions dengan moveToElement(target).build().perform() sebelum membaca elemen tooltip.
  • ๏ธ Praktek terbaik: Tunggu hingga wadah tooltip terlihat setelah kursor diarahkan ke atasnya, lalu pastikan teks muncul dengan getText() untuk menghindari pembacaan yang usang atau kosong.
  • ๐Ÿš€ Selenium Kiat 4: Pasangan Selenium Manajer dengan penantian eksplisit sebagai pengganti Thread.sleep untuk pemeriksaan tooltip yang stabil dan bebas dari jalur driver.

Verifikasi Tooltip di Selenium webdriver

Keterangan alat masuk Selenium

A Keterangan alat masuk Selenium Tooltip adalah teks singkat yang muncul ketika kursor mouse mengarahkan ke suatu objek di halaman web. Objek tersebut bisa berupa tautan, gambar, tombol, atau area teks. Teks tooltip sering memberikan informasi lebih lanjut tentang elemen di bawah kursor.

Tooltip secara tradisional diimplementasikan sebagai atribut "title" pada sebuah elemen. Nilai atribut ini ditampilkan sebagai tooltip saat kursor mouse diarahkan ke elemen tersebut. Ini adalah teks statis yang memberikan informasi tentang elemen tanpa gaya apa pun.

Saat ini, banyak plugin tersedia untuk implementasi tooltip. Tooltip canggih dengan penataan gaya, rendering, gambar, dan tautan dibangun menggunakan JavaPlugin skrip atau jQuery, atau hanya dengan tooltip berbasis CSS.

  • Untuk mengakses atau memverifikasi tooltip statis yang diimplementasikan melalui atribut HTML โ€œtitleโ€, gunakan getAttribute("title") Metode pada WebElement. Nilai yang dikembalikan (teks tooltip) dibandingkan dengan nilai yang diharapkan untuk verifikasi.
  • Untuk implementasi tooltip lainnya, gunakan โ€œAdvanced User Interactions APIโ€ yang disediakan oleh WebDriver untuk membuat efek mouse-hover dan kemudian mengambil tooltip untuk elemen tersebut.

Sekilas tentang API Interaksi Pengguna Tingkat Lanjut

API Interaksi Pengguna Tingkat Lanjut mengekspos tindakan pengguna seperti seret dan lepas, mengarahkan kursor, memilih banyak item, menekan dan melepaskan tombol, serta tindakan keyboard atau mouse lainnya pada halaman web.

Anda dapat merujuk ke ini Referensi kelas Tindakan resmi untuk rincian lebih lanjut tentang API.

Sebelum melompatping Mari kita lihat berbagai skenario dan kelas serta metode yang kita perlukan untuk menggeser elemen slider dengan offset tertentu.

Langkah 1) Untuk menggunakan API, impor paket dan kelas berikut:

API Interaksi Pengguna Tingkat Lanjut

Langkah 2) Buat objek dari kelas โ€œActionsโ€ dan bangun urutan tindakan pengguna. Kelas Actions membangun tindakan berantai seperti moveToElement() dan dragAndDrop(). Objek driver diteruskan sebagai parameter ke konstruktornya.

API Interaksi Pengguna Tingkat Lanjut

Langkah 3) Buat objek Action menggunakan metode build() dari kelas โ€œActionsโ€. Panggil metode perform() untuk mengeksekusi setiap aksi yang diantrekan pada builder.

API Interaksi Pengguna Tingkat Lanjut

Kita telah melihat cara menggunakan beberapa metode Aksi pengguna yang disediakan oleh API: clickAndHold(element), moveByOffset(10, 0), dan release(). API ini menyediakan lebih banyak lagi.

Implementasi Tooltip vs Selenium Pendekatan Verifikasi

Jenis Tooltip Bagaimana cara menampilkannya? Selenium Pendekatan
Atribut judul HTML Teks tersimpan pada elemen itu sendiri; browser menampilkannya saat kursor diarahkan ke elemen tersebut. Baca dengan getAttribute("title") or getDomAttribute("title")Tidak perlu mengarahkan kursor.
Plugin jQuery / JS Div khusus akan ditampilkan di sebelah elemen saat kursor diarahkan ke atasnya. Gunakan Tindakan moveToElement(target).perform(), tunggu, lalu baca elemen tooltip dengan getText().
Tooltip khusus CSS Elemen semu atau div saudara kandung diaktifkan/dinonaktifkan dengan :hover. Aktifkan efek hover dengan Actions dan baca teks yang dihasilkan atau gaya yang dihitung.

Cara Memverifikasi (Menangani) Tooltip di Selenium

Mari kita bahas cara mengakses dan memverifikasi tooltip dengan dua skenario umum:

  • Skenario 1: Tooltip diimplementasikan menggunakan atribut โ€œtitleโ€.
  • Skenario 2: Tooltip diimplementasikan menggunakan plugin jQuery.

Skenario 1: Atribut HTML โ€œtitleโ€

Untuk kasus ini, kita menggunakan situs contoh. https://demo.guru99.com/test/social-icon.html dan periksa tooltip ikon โ€œgithubโ€ di pojok kanan atas halaman.

Atribut 'judul' HTML

Pertama, kita temukan elemen tersebut, kemudian baca atribut โ€œtitleโ€-nya dan bandingkan dengan teks tooltip yang diharapkan.

Karena tooltip berada di atribut โ€œtitleโ€, kami bahkan tidak mengotomatiskan mouse-hover; kami cukup mengambil nilai atribut dengan metode getAttribute().

Atribut 'judul' HTML

Ini kodenya:

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.*;

public class ToolTip {
    public static void main(String[] args) {

        String baseUrl = "https://demo.guru99.com/test/social-icon.html";
        System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        driver.get(baseUrl);
        String expectedTooltip = "Github";

        // Find the Github icon at the top right of the header
        WebElement github = driver.findElement(By.xpath(".//*[@class='soc-ico show-round']/a[4]"));

        // Read the "title" attribute value of the Github icon
        String actualTooltip = github.getAttribute("title");

        // Assert that the tooltip value matches the expected one
        System.out.println("Actual Title of Tool Tip " + actualTooltip);
        if (actualTooltip.equals(expectedTooltip)) {
            System.out.println("Test Case Passed");
        }
        driver.close();
    }
}

Penjelasan kode:

  1. Temukan WebElement yang mewakili ikon โ€œgithubโ€.
  2. Baca atribut โ€œtitleโ€-nya dengan metode getAttribute().
  3. Konfirmasikan nilai tersebut terhadap teks tooltip yang diharapkan.

Selenium 4 tip: Lebih suka getDomAttribute("title") untuk atribut HTML literal, dan biarkan Selenium Manajer menyelesaikan masalah driver alih-alih melakukan pengkodean secara langsung. chromedriver.exe.

Skenario 2: Plugin jQuery

Banyak plugin jQuery menerapkan tooltip, dan masing-masing menampilkan tooltip dengan sedikit berbeda.

Beberapa plugin mempertahankan markup tooltip di samping elemen pemicu setiap saat, sementara yang lain membuat tag "div" secara dinamis ketika kursor memasuki pemicu.

Untuk demonstrasi ini, kami menggunakan gaya โ€œjQuery Tools Tooltipโ€.

Open https://demo.guru99.com/test/tooltip.htmlSaat mengarahkan kursor ke โ€œUnduh sekarangโ€, akan muncul tooltip lanjutan dengan gambar, latar belakang keterangan, tabel kecil, dan tautan yang dapat diklik.

Tooltip Plugin jQuery

Jika Anda memeriksa kode sumbernya, div yang mewakili tooltip sudah berada di sebelah tautan โ€œUnduh sekarangโ€. Tag skrip di bawahnya mengontrol kapan tooltip tersebut muncul.

Kode sumber Tooltip Plugin jQuery

Sekarang kita verifikasi teks tautan yang ditampilkan di dalam tooltip.

Pertama, temukan WebElement untuk โ€œUnduh sekarangโ€. Gunakan API Interaksi untuk berpindah ke elemen tersebut (arahkan kursor mouse). Selanjutnya, temukan WebElement yang sesuai dengan tautan di dalam tooltip yang ditampilkan dan verifikasi teksnya dengan nilai yang diharapkan.

Verifikasi Tooltip Plugin jQuery

Ini kodenya:

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.*;

public class JqueryToolTip {
    public static void main(String[] args) {

        String baseUrl = "https://demo.guru99.com/test/tooltip.html";
        System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe");

        WebDriver driver = new ChromeDriver();
        String expectedTooltip = "What's new in 3.2";
        driver.get(baseUrl);

        WebElement download = driver.findElement(By.xpath(".//*[@id='download_now']"));
        Actions builder = new Actions(driver);

        // Hover over the "Download now" link to reveal the tooltip
        builder.moveToElement(download).build().perform();

        WebElement toolTipElement = driver.findElement(By.xpath(".//*[@class='box']/div/a"));
        String actualTooltip = toolTipElement.getText();

        System.out.println("Actual Title of Tool Tip " + actualTooltip);
        if (actualTooltip.equals(expectedTooltip)) {
            System.out.println("Test Case Passed");
        }
        driver.close();
    }
}

Code Penjelasan:

  1. Temukan WebElement yang sesuai dengan elemen โ€œUnduh sekarangโ€ yang akan Anda arahkan kursor mouse-nya.
  2. Gunakan API Interaksi untuk mengarahkan kursor ke โ€œUnduh sekarangโ€.
  3. Setelah tooltip terlihat, temukan WebElement yang mewakili tautan di dalam tooltip (tag โ€œaโ€).
  4. Baca teks tooltip dengan getText() dan membandingkannya dengan nilai yang diharapkan yang tersimpan di expectedTooltip.

Pertanyaan Umum Demo Slot

Jika tooltip dibuat menggunakan atribut title HTML, panggil getAttribute(โ€œtitleโ€) atau getDomAttribute(โ€œtitleโ€) pada WebElement dan bandingkan teks yang dikembalikan dengan nilai yang diharapkan.

Gunakan kelas Actions untuk moveToElement(target).perform(), tunggu hingga elemen tooltip terlihat, lalu baca teks atau atributnya dengan getText() dan pastikan nilainya.

Fungsi ini mengembalikan nilai null ketika elemen tidak memiliki atribut title atau teks tooltip dirender secara dinamis melalui div terpisah. Periksa DOM dan targetkan kontainer tooltip yang sebenarnya.

Alat berbasis AI secara otomatis menghasilkan locator, memperbaiki selector secara otomatis ketika DOM berubah, dan menyarankan urutan saat kursor diarahkan ke elemen (hover), sehingga mengurangi pengujian tooltip yang tidak stabil dan waktu pemeliharaan di berbagai browser.

Ya. Asisten AI modern memindai halaman, mendeteksi elemen yang dapat di-hover, dan menghasilkan skrip yang siap dijalankan. Selenium Skrip dengan pernyataan (assertions), secara signifikan mengurangi upaya pembuatan skrip manual untuk cakupan tooltip.

Ringkaslah postingan ini dengan: