Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Ruby

วิธีควบคุมเว็บเบราว์เซอร์จาก Ruby ด้วย Watir

คุณรู้หรือไม่ว่าคุณควบคุมเว็บเบราว์เซอร์ด้วย 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

วิธีการกรอกข้อมูลในช่องป้อนข้อมูล

การกรอกข้อมูลในช่องป้อนข้อมูลประกอบด้วยสองขั้นตอน:

  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 ในบทช่วยสอนนี้ ซึ่งเป็นอัญมณีทับทิมที่ให้คุณควบคุมเว็บเบราว์เซอร์จากระยะไกล เพื่อให้คุณทำงานอัตโนมัติและดึงข้อมูลจากหน้าต่างๆ ได้

โปรดแชร์บทความนี้หากคุณพบว่ามีประโยชน์เพื่อให้คนอื่นค้นหาเจอ!

ขอบคุณสำหรับการอ่าน