ใน Robot Framework คุณสามารถใช้คำสั่ง “Execute JavaScript” ในการรัน JavaScript ได้ วิธีนี้เป็นวิธีที่ดีในการทำงานกับ elements บนหน้าเว็บหรือรันสคริปต์ที่มีความซับซ้อนเพิ่มขึ้น โดยเฉพาะกับการทดสอบ UI ด้วย Robot Framework และ SeleniumLibrary
เรามาดูวิธีทำกัน
ขั้นตอนที่ 1: ติดตั้ง Robot Framework และ SeleniumLibrary
สั่งติดตั้งผ่าน pip ดังนี้:
shellCopy codepip install robotframework
pip install robotframework-seleniumlibrary
ขั้นตอนที่ 2: สร้างไฟล์ .robot สำหรับทดสอบ
เราสามารถสร้างไฟล์ .robot ได้ด้วยการสร้างไฟล์ text ปกติ แล้วเปลี่ยนนามสกุลเป็น .robot เช่น test.robot
ขั้นตอนที่ 3: การเขียนคำสั่ง Execute JavaScript
ในไฟล์ test.robot
เราจะเขียนดังนี้:
robotCopy code*** Settings ***
Library SeleniumLibrary
*** Variables ***
${URL} https://www.example.com
${BROWSER} Chrome
*** Test Cases ***
Execute JavaScript Test Case
Open Browser ${URL} ${BROWSER}
Execute JavaScript window.alert('Hello, Robot Framework!')
Close Browser
ในตัวอย่างนี้ เราเปิดเบราว์เฉพาะที่ URL ที่กำหนด และเรียกคำสั่ง JavaScript window.alert('Hello, Robot Framework!')
ผ่านคำสั่ง Execute JavaScript
จากนั้นเราปิดเบราว์เฉพาะ
ขั้นตอนที่ 4: การรัน Robot Framework
คุณสามารถรันไฟล์ .robot ที่คุณสร้างขึ้นได้ด้วยคำสั่ง:
shellCopy coderobot test.robot
หลังจากนั้น Chrome Browser จะถูกเปิดขึ้น และแสดงข้อความ alert ที่เราตั้งใน JavaScript และทำการปิด Chrome Browser
ขั้นตอนที่ 5: การส่งค่าผ่านคำสั่ง Execute JavaScript
คุณยังสามารถส่งค่าไปยัง JavaScript ผ่านคำสั่ง Execute JavaScript
ได้ด้วย โดยเราสามารถใช้ arguments
ใน JavaScript เพื่อรับค่าที่ส่งมา ดังนี้:
robotCopy code*** Test Cases ***
Execute JavaScript with Arguments
Open Browser ${URL} ${BROWSER}
${message}= Set Variable Hello, Robot Framework!
Execute JavaScript window.alert(arguments[0]) ${message}
Close Browser
ในตัวอย่างนี้ เราสร้างตัวแปร ${message}
และกำหนดค่าให้เป็น ‘Hello, Robot Framework!’ แล้วเราส่ง ${message}
นี้ผ่านคำสั่ง Execute JavaScript
ภายใน JavaScript เราสามารถใช้ arguments[0]
เพื่อรับค่าที่ส่งมา
ขั้นตอนที่ 6: การรับค่ากลับจากคำสั่ง Execute JavaScript
คุณสามารถรับค่าที่คืนมาจาก JavaScript ผ่านคำสั่ง Execute JavaScript
ดังนี้:
robotCopy code*** Test Cases ***
Get Return Value from JavaScript
Open Browser ${URL} ${BROWSER}
${title}= Execute JavaScript return document.title;
Log ${title}
Close Browser
ในตัวอย่างนี้ เราใช้คำสั่ง return document.title;
ใน JavaScript เพื่อรับค่าชื่อของหน้าเว็บปัจจุบัน และเราใช้คำสั่ง Log
ของ Robot Framework เพื่อแสดงชื่อหน้าเว็บที่ได้รับ
ในการทำงานกับ JavaScript ใน Robot Framework คุณควรมีความรู้เกี่ยวกับ JavaScript และการทำงานของเว็บเบราว์เซอร์ เพราะคุณจะต้องเข้าใจว่า JavaScript ที่คุณเขียนจะทำงานอย่างไรบนหน้าเว็บ