Rumah >pembangunan bahagian belakang >Tutorial Python >Selenium `.text` lwn. `.get_attribute('innerHTML')`: Bilakah Saya Perlu Menggunakan Setiap?
Apabila berinteraksi dengan elemen web menggunakan Selenium, memperoleh kandungan tekstual mereka boleh dicapai melalui pendekatan yang berbeza. Antaranya ialah .text dan .get_attribute("innerHTML"). Walaupun ia kelihatan boleh ditukar ganti, terdapat perbezaan asas antara kedua-dua dan kejadian khusus apabila satu lebih sesuai daripada yang lain.
.get_attribute("innerHTML" ) mendapatkan semula innerHTML elemen, termasuk semua kandungan dan penandanya. Kaedah ini cuba mengambil harta dengan nama yang ditentukan terlebih dahulu. Jika tiada harta wujud, ia mengembalikan atribut dengan nama yang sama. Jika kedua-duanya tidak dijumpai, ia akan mengembalikan Tiada.
Nilai yang dianggap benar (bersamaan dengan benar atau salah) dijadikan sebagai boolean. Sebaliknya, semua nilai bukan Tiada yang lain dikembalikan sebagai rentetan. Untuk atribut atau sifat yang tidak wujud, Tiada dikembalikan.
Argumen:
Contoh:
# Get the innerHTML of an element html = target_element.get_attribute("innerHTML")
.teks mendapatkan semula kandungan teks unsur, tidak termasuk sebarang penanda atau penggayaan.
Definisi:
def text(self): """The text of the element.""" return self._execute(Command.GET_ELEMENT_TEXT)['value']
Contoh:
# Get the text of an element text = target_element.text
Walaupun terdapat persamaan dangkal .teks dan .get_attribute("innerHTML"), terdapat perbezaan penting untuk dipertimbangkan:
Apabila memuatkan halaman web, penyemak imbas mentafsir HTML dan mencipta objek DOM. Atribut yang ditakrifkan dalam kod HTML menjadi sifat objek DOM ini. Walau bagaimanapun, jika atribut bukan standard untuk elemen tertentu, ia tidak akan mempunyai sifat yang sepadan.
Dalam kes sedemikian, atribut boleh diakses menggunakan kaedah berikut:
Atribut standard dalam HTML biasanya disegerakkan dengan sifat yang sepadan. Ini bermakna apabila atribut diubah suai, sifat itu dikemas kini secara automatik dan begitu juga sebaliknya.
Dalam Python, atribut diakses menggunakan tatatanda titik (cth., someObj .nama). Ia sama ada boleh menjadi pembolehubah contoh atau diakses melalui kaedah getter dan setter khusus yang ditakrifkan sebagai sifat.
Memilih antara .text dan .get_attribute("innerHTML") apabila mengekstrak kandungan elemen bergantung pada keperluan khusus tugas automasi. Jika matlamatnya adalah untuk mendapatkan teks yang boleh dilihat tanpa sebarang penanda atau gaya, .text adalah sesuai. Sebagai alternatif, jika perwakilan lengkap kandungan HTML diperlukan, termasuk semua elemen dan pemformatannya, .get_attribute("innerHTML") ialah pilihan yang sesuai.
Atas ialah kandungan terperinci Selenium `.text` lwn. `.get_attribute('innerHTML')`: Bilakah Saya Perlu Menggunakan Setiap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!