คุณรู้หรือไม่ว่าคุณควบคุมเว็บเบราว์เซอร์ด้วย Ruby ได้
อัญมณี Watir ช่วยให้คุณทำเช่นนี้ได้
และมาพร้อมกับประสิทธิภาพของเบราว์เซอร์ที่ทันสมัย :
- คุณสามารถจับภาพหน้าจอของพื้นที่ที่มองเห็นได้ของหน้า
- คุณสามารถเรียกใช้จาวาสคริปต์บนหน้าใดก็ได้ โดยไม่ต้องเปิดเครื่องมือสำหรับนักพัฒนาและพิมพ์โค้ดด้วยตนเอง
- คุณสามารถค้นหาลิงก์ คลิกลิงก์ หรือแม้แต่กรอกข้อความในช่องป้อนข้อมูล
ทั้งหมดนี้พร้อมให้คุณใช้งานแล้ว ขอขอบคุณโครงการ Watir &the Selenium
มาดูตัวอย่างโค้ดกัน!
เปิดเบราว์เซอร์
ขั้นแรก สร้างวัตถุเบราว์เซอร์ดังนี้:
require 'watir' browser = Watir::Browser.new
นี่จะเป็นการเปิดหน้าต่าง Chrome ที่ว่างเปล่า (โดยที่คุณได้ติดตั้งไว้) ที่คุณควบคุมได้ในตอนนี้
ตัวอย่างเช่น :
browser.goto("rubyguides.com")
Chrome จะนำทางไปยัง URL นี้ และหน้าจะโหลดเหมือนกับว่าคุณพิมพ์ URL ด้วยตัวเอง
ตอนนี้ :
คุณสามารถทำอะไรก็ได้ตามปกติบนเว็บไซต์ด้วยเมาส์และคีย์บอร์ด
ชอบหาลิงค์แล้วคลิกเลย
ตัวอย่าง :
browser.link(text: "All Posts").click
วิธีค้นหาองค์ประกอบด้วย Watir
คุณค้นหาองค์ประกอบตามแอตทริบิวต์ได้ เช่น:
- ข้อความ
- คลาส
- id
องค์ประกอบเหล่านี้มีวิธีการที่ตรงกับชื่อ HTML ดังนั้นหากคุณกำลังมองหาแท็ก H1 วิธีคือ h1
สำหรับย่อหน้าวิธีการคือ p
&สำหรับรูปภาพ วิธีการคือ img
หรือ images
.
ตัวอย่าง :
browser.h1(text: "Ruby Post Index")
คุณยังสามารถรับรายการองค์ประกอบโดยใช้พหูพจน์ของชื่อเมธอด
ตัวอย่าง :
browser.links browser.images browser.h2s
ซึ่งจะให้ Watir::AnchorCollection
วัตถุซึ่งตอบสนองต่อวิธีการต่างๆ เช่น แผนที่ &การฉีด
ตัวอย่าง :
browser.links.map(&:href)
วิธีจัดการกับระยะหมดเวลาและองค์ประกอบที่ไม่มีอยู่จริง
อาจเกิดขึ้นได้ว่าองค์ประกอบนั้นไม่มีอยู่ อาจเป็นเพราะองค์ประกอบนั้นยังไม่ได้โหลดเข้าสู่หน้า หรือหน้ามีการเปลี่ยนแปลง
จะเกิดอะไรขึ้น เมื่อ Watir ไม่พบองค์ประกอบ ?
มีการหมดเวลา
โดยค่าเริ่มต้นคือ 30 วินาที แต่คุณสามารถเปลี่ยนได้:
Watir.default_timeout = 10
เมื่อหมดอายุคุณจะได้รับ Watir::Exception::UnknownObjectException
ข้อยกเว้น
แต่มีอีกวิธีในการจัดการสิ่งนี้!
คุณสามารถตรวจสอบว่าองค์ประกอบนั้นมีอยู่หรือไม่ก่อนที่จะคลิกหรือดำเนินการอื่นใด
ตามนี้ :
link = browser.link(text: 'Guides') if link.present? link.click end
วิธีถ่ายภาพหน้าจอ
เมื่อคุณเปิดเบราว์เซอร์และโหลดหน้าเว็บแล้ว คุณสามารถจับภาพหน้าจอได้
ถูกใจสิ่งนี้ :
browser.screenshot.save("/tmp/screen.png")
ซึ่งจะบันทึกภาพของวิวพอร์ตปัจจุบัน
การรันสคริปต์
คุณสามารถเรียกใช้ Javascript ในเบราว์เซอร์เพื่อให้มีผลกับสถานะปัจจุบันของหน้า หรือคุณสามารถเรียกใช้ฟังก์ชัน Javascript ที่กำหนดไว้ในหน้านั้นได้
ตามนี้ :
browser.execute_script "alert('bacon')" # nil
ผลลัพธ์?
หน้าต่างแจ้งเตือนที่มีคำว่า “เบคอน” 🙂
เรียกใช้โค้ดและรับผลลัพธ์กลับ :
browser.execute_script "return 1 + 1" # 2
วิธีการกรอกข้อมูลในช่องป้อนข้อมูล
การกรอกข้อมูลในช่องป้อนข้อมูลประกอบด้วยสองขั้นตอน:
- ค้นหาองค์ประกอบ
- ส่งคีย์
นี่คือตัวอย่าง :
browser.input(id: "search").send_keys("orange juice")
ตอนนี้คุณจะต้องหาปุ่มส่งแล้วคลิกปุ่มนั้น
วิธีการและเคล็ดลับที่เป็นประโยชน์ของ Watir
Watir ให้คุณเข้าถึงวิธีการที่เป็นประโยชน์บางอย่าง
ตัวอย่างเช่น รับ URL ปัจจุบัน :
browser.url
รับรายการแท็บที่เปิดอยู่ :
browser.windows
ขยายหน้าต่างปัจจุบันให้ใหญ่สุด :
browser.window.maximize
รับ HTML และข้อความสำหรับหน้าปัจจุบัน :
browser.text browser.html
และนี่คือเคล็ดลับหากคุณต้องการค้นหาองค์ประกอบที่มีการจับคู่เพียงบางส่วน คุณสามารถใช้นิพจน์ทั่วไปได้
ถูกใจสิ่งนี้ :
browser.p(text: /ruby/)
สรุป
คุณได้เรียนรู้เกี่ยวกับ Watir ในบทช่วยสอนนี้ ซึ่งเป็นอัญมณีทับทิมที่ให้คุณควบคุมเว็บเบราว์เซอร์จากระยะไกล เพื่อให้คุณทำงานอัตโนมัติและดึงข้อมูลจากหน้าต่างๆ ได้
โปรดแชร์บทความนี้หากคุณพบว่ามีประโยชน์เพื่อให้คนอื่นค้นหาเจอ!
ขอบคุณสำหรับการอ่าน