1. การติดตั้ง Selenium และ WebDriver
1.1 การติดตั้ง Selenium ผ่าน Python
Selenium สามารถติดตั้งได้ง่ายๆ ผ่าน pip
สำหรับผู้ใช้ภาษา Python
- เปิด Command Prompt หรือ Terminal
- รันคำสั่งเพื่อติดตั้ง Selenium:
pip install selenium
1.2 การดาวน์โหลด WebDriver สำหรับเบราว์เซอร์
WebDriver คือโปรแกรมที่ช่วยให้ Selenium ควบคุมเบราว์เซอร์ได้ ในที่นี้จะแนะนำการใช้งาน WebDriver สำหรับเบราว์เซอร์ที่ใช้บ่อย
- Chrome WebDriver (ChromeDriver):
- เข้าไปที่เว็บไซต์ https://sites.google.com/a/chromium.org/chromedriver/downloads
- ดาวน์โหลด ChromeDriver เวอร์ชันที่ตรงกับเวอร์ชันของ Chrome ที่ใช้อยู่
- แตกไฟล์และเก็บไว้ในโฟลเดอร์ที่จำง่าย เช่น
C:\WebDriver\
- Firefox WebDriver (GeckoDriver):
- เข้าไปที่เว็บไซต์ https://github.com/mozilla/geckodriver/releases
- ดาวน์โหลด GeckoDriver เวอร์ชันที่ตรงกับเวอร์ชันของ Firefox ที่ใช้อยู่
- แตกไฟล์และเก็บไว้ในโฟลเดอร์ที่จำง่าย เช่น
C:\WebDriver\
หมายเหตุ: ควรเพิ่มที่อยู่ของ WebDriver ลงใน PATH ของระบบเพื่อให้สามารถเรียกใช้งานได้ง่ายขึ้น
2. การตั้งค่าและเริ่มต้นใช้งาน Selenium กับ Python
2.1 การเขียนโปรแกรมเพื่อควบคุมเบราว์เซอร์
เมื่อเตรียม Selenium และ WebDriver เสร็จแล้ว สามารถเริ่มเขียนโปรแกรมควบคุมเบราว์เซอร์ได้ ตัวอย่างต่อไปนี้จะเป็นการใช้ Python ควบคุมเบราว์เซอร์ Chrome
ตัวอย่างการเปิดเว็บไซต์ด้วย Selenium
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
# สร้าง instance ของ Chrome WebDriver
driver = webdriver.Chrome(executable_path="C:/WebDriver/chromedriver.exe")
# เปิดเว็บไซต์ Google
driver.get("https://www.google.com")
# ค้นหาข้อความใน Google
search_box = driver.find_element(By.NAME, "q")
search_box.send_keys("Selenium Python")
search_box.send_keys(Keys.RETURN)
# ปิดเบราว์เซอร์
driver.quit()
ในตัวอย่างนี้:
- driver.get() ใช้เพื่อเปิด URL ที่ต้องการ
- find_element() ใช้ในการค้นหาองค์ประกอบของเว็บ เช่น ช่องค้นหา
- send_keys() ใช้พิมพ์ข้อความลงในช่องค้นหา
- driver.quit() ใช้เพื่อปิดเบราว์เซอร์เมื่อทำงานเสร็จสิ้น
2.2 การรอ (Wait) เพื่อจัดการกับองค์ประกอบที่โหลดช้า
Selenium มีฟังก์ชันที่ช่วยรอการโหลดของเว็บเพจ เช่น Explicit Wait หรือ Implicit Wait เพื่อให้การทำงานเป็นไปอย่างราบรื่น
ตัวอย่างการใช้ Explicit Wait
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome(executable_path="C:/WebDriver/chromedriver.exe")
driver.get("https://www.example.com")
try:
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "myElementId"))
)
finally:
driver.quit()
ในตัวอย่างนี้:
- WebDriverWait รอจนกว่าจะพบองค์ประกอบที่ต้องการโดยกำหนดเวลา 10 วินาที
3. การใช้งาน Selenium ในโปรเจกต์จริง
Selenium มีการใช้งานอย่างกว้างขวางในการทดสอบเว็บไซต์ เช่น การทดสอบการทำงานของฟอร์ม การคลิกปุ่ม การกรอกข้อมูล และการยืนยันผลลัพธ์ ซึ่งช่วยลดข้อผิดพลาดและเพิ่มประสิทธิภาพในการพัฒนาเว็บแอปพลิเคชัน
3.1 ตัวอย่างการใช้งาน Selenium สำหรับทดสอบการล็อกอินเว็บไซต์
Selenium สามารถใช้เพื่อทดสอบการล็อกอินโดยอัตโนมัติ และตรวจสอบว่าผู้ใช้สามารถเข้าสู่ระบบได้หรือไม่
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome(executable_path="C:/WebDriver/chromedriver.exe")
driver.get("https://example.com/login")
# ใส่ชื่อผู้ใช้
username_input = driver.find_element(By.ID, "username")
username_input.send_keys("myusername")
# ใส่รหัสผ่าน
password_input = driver.find_element(By.ID, "password")
password_input.send_keys("mypassword")
# คลิกปุ่มล็อกอิน
login_button = driver.find_element(By.ID, "loginButton")
login_button.click()
# ตรวจสอบว่ามีข้อความแสดงว่าเข้าสู่ระบบสำเร็จ
try:
success_message = driver.find_element(By.CLASS_NAME, "welcomeMessage")
print("Login successful!")
except:
print("Login failed.")
driver.quit()
ในตัวอย่างนี้:
- Selenium จำลองการกรอกข้อมูลและคลิกปุ่มเพื่อทดสอบการล็อกอินโดยอัตโนมัติ
- ตรวจสอบว่าเข้าสู่ระบบสำเร็จหรือไม่โดยค้นหาองค์ประกอบที่แสดงข้อความยืนยันการเข้าสู่ระบบ