Rumah >pembangunan bahagian belakang >Tutorial Python >Selenium: `get_attribute('innerHTML')` lwn. `.text` – Bilakah Saya Perlu Menggunakan Yang Mana?
Membandingkan get_attribute("innerHTML") dan .text dalam Selenium
Apabila bekerja dengan rangka kerja Selenium, anda mungkin menghadapi situasi yang anda perlukan untuk mendapatkan semula teks atau innerHTML elemen. Walaupun kedua-dua kaedah boleh memberikan hasil yang serupa, terdapat perbezaan asas yang perlu dipertimbangkan.
get_attribute("innerHTML")
get_attribute("innerHTML") mendapatkan semula innerHTML sesuatu unsur. InnerHTML termasuk kandungan elemen, termasuk elemen anaknya. Kaedah ini mula-mula akan cuba mengembalikan nilai harta dengan nama yang diberikan. Jika harta itu tidak wujud, ia mengembalikan nilai atribut dengan nama yang sama.
# Example my_text = target_element.get_attribute("innerHTML")
.teks
.teks mendapatkan semula kandungan teks sesuatu unsur. Kaedah ini mengabaikan sebarang teg HTML atau elemen anak dan hanya mengembalikan teks yang kelihatan.
# Example my_text = target_element.text
Atribut dan Sifat
Untuk memahami perbezaan antara get_attribute("innerHTML" ) dan .text, adalah penting untuk mengambil perhatian perbezaan antara atribut dan sifat dalam HTML dan DOMnya perwakilan.
Atribut ditakrifkan dalam teg HTML dan memberikan maklumat tambahan tentang elemen, seperti id, kelas atau gayanya. Sifat, sebaliknya, adalah dinamik dan mencerminkan keadaan semasa elemen.
Apabila penyemak imbas menghuraikan HTML, ia mencipta objek DOM untuk elemen. Atribut HTML standard ditukar secara automatik kepada sifat DOM. Walau bagaimanapun, atribut bukan standard kekal boleh diakses hanya melalui kaedah getAttribute().
Kes Penggunaan
Pertimbangkan senario berikut:
Contoh
Andaikan anda mempunyai HTML berikut:
<body>
Menggunakan get_attribute("innerHTML") pada badan elemen akan kembali:
<body>
Manakala, menggunakan .text pada elemen badan akan kembali:
Welcome to Selenium! Written by John Doe
Dalam kes ini, jika matlamat anda adalah untuk mengekstrak struktur HTML yang lengkap, get_attribute ("innerHTML") adalah sesuai. Jika anda hanya memerlukan teks yang dipaparkan, .text sudah memadai.
Atas ialah kandungan terperinci Selenium: `get_attribute('innerHTML')` lwn. `.text` – Bilakah Saya Perlu Menggunakan Yang Mana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!