Apa yang dilakukan WebElement.clear() pada Kotak Teks?

Saya baru-baru ini mengalami masalah saat bekerja dengan Selenium saat memanggil clear() pada kotak teks khusus menyebabkan masalah saat memasukkan teks nanti dalam pengujian. Kotak teks memeriksa (JavaScript) browserEvents, khususnya keyDown peristiwa. Saya mencoba mencari tahu apa yang clear() lakukan untuk melihat apakah hal itu dapat memengaruhi banyak hal, tetapi sepertinya saya tidak dapat menemukan hal spesifiknya.

Sumber pengikatan Selenium Java menunjukkan bahwa clear() tidak menggunakan simulasi keyboard atau mouse untuk menghapus teks dari kotak teks. Jadi, apa sebenarnya fungsinya?


person joshin4colours    schedule 01.03.2013    source sumber


Jawaban (2)


Metode clear() mengeksekusi "Automation Atom", yang merupakan fungsi JavaScript yang dimaksudkan untuk menyediakan unit dasar terkecil dari fungsionalitas otomatisasi untuk browser. Dalam kasus clear(), fungsi tersebut menyetel properti value elemen menjadi string kosong (''), lalu memicu peristiwa onchange pada elemen tersebut. Fungsi atom yang Anda minati adalah bot.action.clear()

person JimEvans    schedule 02.03.2013
comment
Halo, Saya menggali postingan ini, karena saya ingin melihat kode sumber WebElement.clear(), tetapi tautan yang Anda berikan sudah tidak aktif. Saya akan sangat berterima kasih jika Anda dapat memberi tahu saya ke mana harus mencarinya sejak saya terjebak... - person DCzo; 28.12.2017
comment
Kunjungi wiki untuk Atom Otomatisasi. Ada tautan di bagian bawah yang membawa Anda ke file build. - person MikeJRamsey56; 31.01.2018

Inilah yang sebenarnya akan dilakukan clear(). Fungsi ini akan menghapus nilai kotak teks dan mengaktifkan kotak teks. Sebelum memasukkan teks ke dalam bidang teks kita perlu mengosongkan bidang teks dan mengaktifkannya. Jika kita tidak menggunakan clear (), kita tidak dapat memasukkan nilai apa pun di kolom teks menggunakan Selenium.

driver.find_element_by_xpath(xpath).clear()
driver.find_element_by_xpath(xpath).send_keys("data")
person Kv.senthilkumar    schedule 02.03.2013
comment
Jawaban ini tidak benar. Anda tidak perlu clear() kotak teks untuk mengaktifkannya. Anda akan menggunakan clear() untuk membersihkan teks yang ada di kotak teks sebelum memasukkan nilai baru. Jawaban Jim benar dan lebih detail secara teknis. - person JeffC; 18.07.2017