Mengakses Elemen Teks dengan Selenium WebDriver dalam Python
Dalam automasi web menggunakan Selenium WebDriver, mendapatkan semula kandungan teks daripada elemen HTML adalah penting. Walau bagaimanapun, isu boleh timbul apabila ID elemen berubah secara dinamik apabila halaman dimuat semula, seperti dalam kes yang dibentangkan.
Kod Asal
Kod asal yang disediakan:
text = driver.find_element_by_class_name("current-stage").getText("my text")
cuba mencari elemen mengikut nama kelas "peringkat semasa" dan mengekstrak teksnya, yang dijangka menjadi "teks saya."
Struktur HTML
Struktur HTML yang disediakan menunjukkan elemen teks dengan nama kelas "teks semasa" dan ID dinamik, seperti berikut:
<span class="current-text" id="yui_3_7_0_4_1389185744113_384">my text</span>
Isunya
Isu dengan kod asal tidak berkaitan dengan XPath sebaliknya penyalahgunaan kaedah getText. Menghantar hujah untuk mendapatkanText cuba menetapkan teks elemen, bukan mendapatkannya.
Pendekatan yang Betul
Pendekatan yang betul untuk mengekstrak teks daripada elemen ialah untuk menggunakan getText tanpa sebarang hujah, seperti berikut:
text = driver.find_element_by_class_name("current-stage").getText()
Kod ini akan mendapatkan semula kandungan teks elemen dan menyimpannya dalam pembolehubah teks.
Mengesahkan Keputusan
Daripada menghantar teks yang dijangkakan kepada kaedah getText, anda boleh mengesahkan teks yang diambil selepas itu menggunakan kaedah assertEqual, seperti berikut:
expected_text = "my text" actual_text = driver.find_element_by_class_name("current-stage").getText() self.assertEqual(expected_text, actual_text)
Pendekatan ini memastikan teks yang diambil sepadan dengan nilai yang dijangkakan.
Atas ialah kandungan terperinci Bagaimana untuk Mengambil Teks daripada Elemen HTML yang Berubah Secara Dinamik dalam Selenium WebDriver?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!