Watir - Objek Halaman
Objek Halaman di Watir membantu kita untuk menggunakan kembali kode dalam bentuk kelas. Dengan menggunakan fitur objek halaman, kita dapat mengotomatiskan aplikasi kita tanpa harus menduplikasi kode apa pun dan juga membuat kode tersebut dapat dikelola.
Saat menguji, kita dapat membuat objek halaman untuk setiap halaman yang akan kita uji. Kemudian, kita akan mengakses metode dan properti menggunakan objek halaman.
Alasan di balik penggunaan objek halaman -
Jika ada perubahan yang dilakukan pada halaman saat mengubah perubahan, penulisan ulang kode tidak diperlukan.
Untuk menghindari redundansi kode.
Kami akan menggunakan RSpec untuk menggunakan objek halaman di Watir. Jika Anda tidak terbiasa dengan RSpec, berikut adalah tutorial lengkap yang tersedia untuk RSpec untuk Anda pelajari.
Halaman tempat kami akan melakukan pengujian diberikan di sini -
textbox.html
<html>
<head>
<title>Testing UI using Watir</title>
</head>
<body>
<script type = "text/javascript">
function wsentered() {
console.log("inside wsentered");
var firstname = document.getElementById("firstname");
if (firstname.value != "") {
document.getElementById("displayfirstname").innerHTML =
"The name entered is : " + firstname.value;
document.getElementById("displayfirstname").style.display = "";
}
}
</script>
<div id = "divfirstname">
Enter First Name :
<input type = "text" id = "firstname" name = "firstname" onchange = "wsentered()" />
</div>
<br/>
<br/>
<div style = "display:none;" id = "displayfirstname"></div>
</body>
</html>
Keluaran
Kami sekarang akan membuat objek halaman untuk halaman di atas seperti yang ditunjukkan di bawah ini -
pageobjecttest.rb
class InitializeBrowser
def initialize(browser)
@browser = browser
end
end
class TestPage lt; InitializeBrowser
def textbox
@textbox = TestTextbox.new(@browser)
end
def close
@browser.screenshot.save 'usingpageobject.png'
@browser.close
end
end # TestPage
class TestTextbox < InitializeBrowser
URL = "http://localhost/uitesting/textbox.html"
def open
@browser.goto URL
self
end
def enterdata_as(name)
name_field.set name
name_field.fire_event('onchange')
end
private
def name_field
@browser.text_field(:id > "firstname")
end
end # TestTextbox
Ada tiga kelas yang ditentukan - InitializeBrowser, TestPage dan TestTextbox -
InitializeBrowser - Ini akan menginisialisasi browser yang dibuka dan membagikan objek browser dengan kelas TestPage dan TestTextbox.
TestPage - Kelas ini akan memiliki referensi objek ke TestTextbox dan berisi metode untuk menangkap tangkapan layar dan menutup browser.
TestTextbox - Kelas ini akan memiliki metode untuk membuka url halaman, memberikan referensi ke textfield, mengatur data dan mengaktifkan peristiwa perubahan.
Setelah Anda menjalankan kode yang ditunjukkan di atas, Anda dapat melihat hasilnya seperti di bawah ini -