Dalam HTML sebuah aplikasi web ada kode berikut
<input type="text" name="prettyTime" id="prettyTime" class="ui-state-disabled prettyTime" readonly="readonly">
Apa yang sebenarnya ditampilkan di halaman itu adalah string yang menampilkan waktu.
Di Selenium Web Driver, saya memiliki WebElement
objek yang mengacu pada <input>
penggunaan
WebElement timeStamp = waitForElement(By.id("prettyTime"));
Saya ingin mendapatkan nilai dari WebElement
, atau, dengan kata lain, apa yang tercetak di halaman. Saya mencoba semua WebElement
getter dan tidak ada yang mengambil nilai sebenarnya yang dilihat pengguna. Ada bantuan? Terima kasih.
sumber
getAttribute("value")
adalah benar-benar bagaimana Anda melakukan ini ?! Itu tidak masuk akal. Ada perbedaan besar antaravalue
atributinput
elemen danvalue
propertinya. Apakah Selenium melakukan hal mengerikan yang dilakukan jQuery dan menggabungkannya?await
saat menggunakangetAttribute
.Anda bisa melakukan seperti ini:
ini akan memberi Anda waktu untuk menampilkan halaman web.
sumber
Dengan selenium 2,
saya biasanya menulisnya seperti itu:
ATAU
sumber
Untuk pengikatan python, itu akan menjadi:
sumber
Mengikuti jawaban @ragzzy yang saya gunakan
Ia bekerja cukup baik dan tidak mengubah DOM
sumber
Seperti yang telah disebutkan sebelumnya, Anda dapat melakukan hal seperti itu
Tapi seperti yang Anda lihat, elemen Anda harus memiliki
id
atribut, dan juga, jquery di halaman Anda.sumber
Jika nilai masukan diisi oleh skrip yang memiliki beberapa latensi yang terlibat (misalnya panggilan AJAX) maka Anda perlu menunggu sampai masukan telah diisi. Misalnya
sumber
elemen.GetAttribute ("nilai");
Meskipun jika Anda tidak melihat atribut "nilai" di html dom, Anda akan mendapatkan nilai bidang yang ditampilkan di GUI.
sumber
Ini agak hacky, tetapi berhasil.
Saya menggunakan
JavascriptExecutor
dan menambahkan adiv
ke HTML, dan mengubah teksdiv
menjadi$('#prettyTime').val()
Saya kemudian menggunakan Selenium untuk mengambildiv
dan mengambil nilainya. Setelah menguji kebenaran nilainya, saya menghapus div yang baru saja dibuat.sumber