Saya mendapat beberapa tes di mana saya memeriksa bahwa pesan kesalahan yang tepat muncul ketika teks di bidang tertentu tidak valid. Satu pemeriksaan untuk validitas adalah bahwa elemen textarea tertentu tidak kosong.
Jika teks ini sudah memiliki teks di dalamnya, bagaimana saya bisa memberitahu selenium untuk menghapus bidang?
sesuatu seperti:
driver.get_element_by_id('foo').clear_field()
Jawaban:
sumber
Kamu bisa memakai
Jika elemen ini adalah elemen entri teks, ini akan menghapus nilainya.
Perhatikan bahwa acara yang dipecat oleh acara ini mungkin tidak seperti yang Anda harapkan. Secara khusus, kami tidak memecat acara keyboard atau mouse. Jika Anda ingin memastikan acara keyboard diaktifkan, pertimbangkan untuk menggunakan sesuatu seperti
sendKeys(CharSequence)
. Misalnya:atau:
sumber
webElement.sendKeys(Keys.BACK_SPACE); //do repeatedly, e.g. in while loop
dalam kasus aneh sayaSaya berlari ke bidang di mana .clear () tidak berfungsi. Menggunakan kombinasi dari dua jawaban pertama berhasil untuk bidang ini.
sumber
;
lagi?;
tidak diperlukan dalam python. Saya menambahkannya secara tidak sengaja. Tangkapan yang bagus.Dalam versi Selenium terbaru, gunakan:
sumber
untuk java
atau
Jika elemen ini adalah elemen entri teks, ini akan menghapus nilainya.
sumber
Ini adalah sintaksis umum
sumber
Dengan panggilan jelas (), muncul di DOM bahwa komponen input / textarea yang sesuai masih memiliki nilai yang lama, sehingga setiap perubahan berikut pada komponen itu (misalnya mengisi komponen dengan nilai baru) tidak akan diproses dalam waktu.
Jika Anda melihat kode sumber selenium, Anda akan menemukan bahwa metode clear () - didokumentasikan dengan komentar berikut:
Jadi menggunakan petunjuk bermanfaat ini untuk menghapus input / textarea (komponen yang sudah memiliki nilai) DAN menetapkan nilai baru untuk itu, Anda akan mendapatkan beberapa kode seperti berikut:
Maaf untuk kode ini adalah Java dan bukan Python. Juga, saya harus melewatkan tambahan "waitUntilPageIsReady () - metode yang akan membuat posting ini terlalu panjang.
Semoga ini bisa membantu Anda dalam perjalanan Anda dengan Selenium!
sumber
Dalam pengalaman saya, ini ternyata yang paling efisien
Kami mengirim Ctrl + Backspace untuk menghapus semua karakter dari input, Anda juga dapat mengganti backspace dengan delete.
EDIT: menghapus ketergantungan Tombol
sumber
driver.find_element_by_xpath("path").send_keys(Keys.CONTROL + u'\ue003')
bekerja sangat baik dengan FireFoxsumber