Selenium Python บทช่วยสอนการใช้งาน WebDriver (ตัวอย่าง)

⚡ สรุปอย่างชาญฉลาด

Selenium สีสดสวย Python จับคู่ไลบรารีการทำงานอัตโนมัติ WebDriver กับ Python ไวยากรณ์ที่กระชับเพื่อทดสอบเว็บแอปพลิเคชันต่างๆ FirefoxChrome และ Internet Explorer คู่มือนี้จะตั้งค่า PyDev in Eclipseเขียนสคริปต์การเข้าสู่ระบบ และอธิบายว่าทำไมทีมต่างๆ จึงเลือกใช้ Python เกินกว่า Java.

  • 🐍 Python ความได้เปรียบ: Less ไวยากรณ์ที่เยิ่นเย้อทำให้ Selenium สคริปต์อ่านและบำรุงรักษาง่ายขึ้น
  • 🌐 เว็บไดร์เวอร์: ส่งคำสั่งมาตรฐานไปยัง Firefoxรวมถึง Chrome และ IE โดยไม่คำนึงถึงดีไซน์ของเบราว์เซอร์
  • 🧩 PyDev การติดตั้ง: ติดตั้ง PyDev ปลั๊กอิน Eclipse และตั้งค่า Python ล่าม.
  • 📝 สคริปต์การเข้าสู่ระบบ: ค้นหาฟิลด์ตามรหัส ส่งคีย์ และส่งแบบฟอร์มโดยอัตโนมัติ
  • การยืนยันกรรมสิทธิ์: WebDriverWait ร่วมกับ assert จะตรวจสอบชื่อหน้าเว็บหลังจากล็อกอินเสร็จสิ้น
  • 🤖 AI ช่วยเหลือ: เครื่องมือ AI สร้างตัวระบุตำแหน่งและ Selenium Python สคริปต์จากข้อความแจ้งแบบธรรมดา

Selenium Python บทช่วยสอนการใช้งาน WebDriver

Selenium สีสดสวย Python

Selenium สนับสนุน Python จึงสามารถใช้เป็น Selenium เว็บไดร์เวอร์ด้วย Python สำหรับการทดสอบ

  • Python เมื่อเทียบกับภาษาโปรแกรมอื่นๆ แล้ว ภาษาโปรแกรมนี้ใช้งานง่ายกว่า เนื่องจากมีไวยากรณ์ที่ไม่ซับซ้อนมากนัก
  • การขอ Python API ช่วยให้คุณสามารถเชื่อมต่อกับเบราว์เซอร์ผ่านทาง Selenium.
  • Selenium ส่งมาตรฐาน Python สามารถส่งคำสั่งไปยังเบราว์เซอร์ต่างๆ ได้ แม้ว่าการออกแบบเบราว์เซอร์จะแตกต่างกันก็ตาม

คุณสามารถเรียกใช้ Selenium สีสดสวย Python สคริปต์สำหรับ Firefoxเช่น Chrome, IE เป็นต้น บนระบบปฏิบัติการต่างๆ

ความหมายของ Python?

Python เป็นภาษาสคริปต์เชิงวัตถุระดับสูง ได้รับการออกแบบในลักษณะที่เป็นมิตรต่อผู้ใช้ Python ใช้คำหลักภาษาอังกฤษที่เข้าใจง่าย มีโครงสร้างไวยากรณ์ที่ซับซ้อนน้อยกว่าภาษาอื่นๆ ภาษาโปรแกรม.

ดูตัวอย่างบางส่วนในตารางด้านล่าง

คำหลัก ความหมาย การใช้
elif อย่างอื่นถ้า อย่างอื่นถ้า
อื่น อื่น ถ้า: X; เอลฟ์: ใช่; ความหมายอื่นๆ :เจ
ยกเว้น หากเกิดข้อผิดพลาด ให้ทำตามขั้นตอนนี้ ยกเว้น ValueError, a: พิมพ์ a
exec เรียกใช้สตริงเป็น Python exec 'พิมพ์ "สวัสดีชาวโลก !"'

ความหมายของ Selenium?

Selenium เป็นเครื่องมือสำหรับทดสอบเว็บแอปพลิเคชันของคุณ คุณสามารถทำได้หลายวิธี เช่น:

  • อนุญาตให้แตะปุ่มต่างๆ ได้
  • กรอกข้อมูลลงในแบบฟอร์ม
  • อ่านเว็บไซต์ของคุณเพื่อดูว่าทุกอย่าง “ตกลง” หรือไม่ และอื่นๆ

วิธีการติดตั้งและกำหนดค่า PyDev in Eclipse

PyDev คือ Python สภาพแวดล้อมการพัฒนาสำหรับ Eclipse.

ขั้นตอน 1) ไปที่ Eclipse Marketplace. ความช่วยเหลือ > ติดตั้งซอฟต์แวร์ใหม่

ติดตั้งและกำหนดค่า PyDev in Eclipse

ขั้นตอนต่อไปคือการติดตั้ง “pydev IDE” สำหรับ Eclipse.

ขั้นตอน 2) ในขั้นตอนนี้:

  1. ค้นหา “http://pydev.org/updates” ในหัวข้อ “ทำงานร่วมกับ” จากนั้น
  2. เลือกรายการทั้งหมดที่แสดง และคลิกปุ่มถัดไปสองครั้ง
  3. ยอมรับข้อตกลงใบอนุญาตและคลิก เสร็จสิ้น

ติดตั้งและกำหนดค่า PyDev in Eclipse

ขั้นตอน 3) คุณอาจพบข้อความเตือนด้านความปลอดภัย คลิก “ติดตั้งต่อไป”

ติดตั้งและกำหนดค่า PyDev in Eclipse

ขั้นตอน 4) ตั้งค่ากำหนดเพื่อให้คุณสามารถใช้งานได้ Python ตามความต้องการของโครงการ ไปที่ Window > Preferences > PyDev > ล่าม > Python ล่าม.

ติดตั้งและกำหนดค่า PyDev in Eclipse

ตั้งค่าเริ่มต้น Python ตัวแปลภาษา ตามที่คุณตั้งค่าไว้ Java คอมไพเลอร์สำหรับการทำงาน Java โค้ด หากต้องการเปลี่ยนชื่อตัวแปลภาษา ให้คลิกปุ่ม Browse for python/pypy exe

ติดตั้งและกำหนดค่า PyDev in Eclipse

ขั้นตอน 5) ในขั้นตอนนี้ ให้ระบุ "ชื่อล่าม" และเส้นทางไฟล์ "exe" Python.

  1. คลิกที่ 'เรียกดู' และค้นหา python.exe ที่คุณติดตั้งไว้ Python.
  2. คลิกปุ่ม 'ตกลง'
  3. เลือกโฟลเดอร์ทั้งหมดแล้วคลิก ตกลง
  4. คลิกที่ "ใช้และปิด"

ติดตั้งและกำหนดค่า PyDev in Eclipse

ขั้นตอน 6) สร้างโปรเจ็กต์ใหม่ใน Pythonในขั้นตอนนี้:

  1. คลิกขวา PyDev สำรวจแพ็คเกจ > ใหม่
  2. เลือกตัวเลือกอื่น ๆ

ติดตั้งและกำหนดค่า PyDev in Eclipse

  1. เลือก "PyDev > PyDev โครงการ".
  2. กดปุ่ม 'ถัดไป'

ติดตั้งและกำหนดค่า PyDev in Eclipse

  1. ตั้งชื่อโปรเจ็กต์ของคุณ
  2. คลิก "เสร็จสิ้น"

ติดตั้งและกำหนดค่า PyDev in Eclipse

คุณสามารถเห็นใหม่ Python (PyDev) โครงการถูกสร้างขึ้น

ขั้นตอน 7) หลังจากสร้าง 'PyDev โครงการ' คุณจะสร้างใหม่ Python บรรจุภัณฑ์

  1. คลิกขวาที่โครงการ > ใหม่ > PyDev บรรจุภัณฑ์
  2. ตั้งชื่อแพ็กเกจของคุณแล้วคลิก เสร็จสิ้น

ติดตั้งและกำหนดค่า PyDev in Eclipse

ติดตั้งและกำหนดค่า PyDev in Eclipse

ขั้นตอน 8) จากภาพหน้าจอด้านล่าง จะเห็นว่ามีการสร้างแพ็กเกจใหม่ขึ้นมา

ติดตั้งและกำหนดค่า PyDev in Eclipse

ถัดไป สร้าง a PyDev โมดูล โมดูลนี้ประกอบด้วย Python ไฟล์สำหรับการเริ่มต้นระบบ ซึ่งฟังก์ชันต่างๆ สามารถนำเข้าในโมดูลอื่นได้ โดยไม่ต้องเขียนโปรแกรมใหม่ทั้งหมด

ขั้นตอน 9) สร้างใหม่ PyDev โมดูล. คลิกขวาที่แพ็คเกจ > ใหม่ > PyDev โมดูล.

ติดตั้งและกำหนดค่า PyDev in Eclipse

ตั้งชื่อโมดูลของคุณแล้วคลิก “เสร็จสิ้น”

ติดตั้งและกำหนดค่า PyDev in Eclipse

เลือก "เทมเพลตว่างเปล่า" แล้วคลิก "ตกลง"

ติดตั้งและกำหนดค่า PyDev in Eclipse

ขั้นตอน 10) เขียนรหัสของคุณสำหรับ Selenium สีสดสวย Python ที่แสดงด้านล่าง

ติดตั้งและกำหนดค่า PyDev in Eclipse

วิธีสร้างสคริปต์ทดสอบใน Selenium สีสดสวย Python

ในการนี​​้ Selenium เว็บไดร์เวอร์ด้วย Python ตัวอย่างเช่น เราใช้ระบบอัตโนมัติสำหรับ "หน้าเข้าสู่ระบบ Facebook" โดยใช้ Firefox คนขับรถ

Selenium สีสดสวย Python ตัวอย่างที่ 1: เข้าสู่ระบบ Facebook

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
user_name = "YOUR EMAILID"
password = "YOUR PASSWORD"
driver = webdriver.Firefox()
driver.get("https://www.facebook.com")
element = driver.find_element_by_id("email")
element.send_keys(user_name)
element = driver.find_element_by_id("pass")
element.send_keys(password)
element.send_keys(Keys.RETURN)
element.close()

ภาพถ่ายของ Code

สร้างสคริปต์ทดสอบใน Selenium สีสดสวย Python

คำอธิบายของรหัส

  • Code สาย 1: จากโมดูล selenium ให้ทำการ import webdriver
  • Code สาย 2: จากโมดูล selenium ให้ทำการ import Keys
  • Code สาย 3: user_name เป็นตัวแปรที่ใช้เก็บค่าชื่อผู้ใช้
  • Code สาย 4: ตัวแปร “password” จะถูกใช้เพื่อเก็บค่าของรหัสผ่าน
  • Code สาย 5: เริ่มต้น “Firefox” โดยการสร้างวัตถุของมัน
  • Code สาย 6: เมธอด “driver.get” จะนำทางไปยังหน้าเว็บที่กำหนดโดย URLWebDriver จะรอจนกว่าหน้าเว็บจะโหลดเสร็จสมบูรณ์ก่อนที่จะส่งการควบคุมกลับไปยังสคริปต์ของคุณ
  • Code สาย 7: ค้นหาองค์ประกอบช่องข้อความ (textbox) ที่ต้องกรอก "อีเมล"
  • Code สาย 8: ส่งค่าต่างๆ ไปที่ส่วนอีเมล
  • Code สาย 9: รหัสผ่านก็เช่นกัน
  • Code สาย 10: ส่งค่าไปยังส่วนรหัสผ่าน
  • Code สาย 11: element.send_keys(Keys.RETURN) จะกด Enter หลังจากใส่ค่าแล้ว
  • Code สาย 12: ปิด

Output: ป้อนค่าชื่อผู้ใช้ “guru99” และรหัสผ่าน

สร้างสคริปต์ทดสอบใน Selenium สีสดสวย Python

หน้าเพจ Facebook จะล็อกอินด้วยอีเมลและรหัสผ่าน หน้าเพจเปิดขึ้นแล้ว (ดูภาพด้านล่าง)

สร้างสคริปต์ทดสอบใน Selenium สีสดสวย Python

Selenium สีสดสวย Python ตัวอย่างที่ 2: เข้าสู่ระบบ Facebook และตรวจสอบชื่อเรื่อง

ในตัวอย่างนี้ เราจะเปิดหน้าล็อกอิน กรอกข้อมูลในช่องที่จำเป็น ได้แก่ "ชื่อผู้ใช้" และ "รหัสผ่าน" และตรวจสอบชื่อหน้าเว็บ

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
# Step 1) Open Firefox
browser = webdriver.Firefox()
# Step 2) Navigate to Facebook
browser.get("http://www.facebook.com")
# Step 3) Search & Enter the Email or Phone field & Enter Password
username = browser.find_element_by_id("email")
password = browser.find_element_by_id("pass")
submit   = browser.find_element_by_id("loginbutton")
username.send_keys("YOUR EMAILID")
password.send_keys("YOUR PASSWORD")
# Step 4) Click Login
submit.click()
wait = WebDriverWait( browser, 5 )
page_title = browser.title
assert page_title == "Facebook"

ภาพรวมของรหัส

สร้างสคริปต์ทดสอบใน Selenium สีสดสวย Python

คำอธิบายของรหัส:

  • Code บรรทัดที่ 1-2: นำเข้าแพ็กเกจ Selenium
  • Code สาย 4: เริ่มต้น Firefox โดยการสร้างวัตถุขึ้นมา
  • Code สาย 6: เข้าสู่หน้าล็อกอิน (Facebook)
  • Code บรรทัดที่ 8-10: ดึงข้อมูลช่องป้อนชื่อผู้ใช้และรหัสผ่าน รวมถึงปุ่มส่งข้อมูล
  • Code บรรทัดที่ 11-12: ป้อนข้อมูลลงในช่องป้อนชื่อผู้ใช้และรหัสผ่าน
  • Code สาย 14: คลิกที่ปุ่ม "ส่ง"
  • Code สาย 15: สร้างอ็อบเจ็กต์รอ (wait object) โดยตั้งค่าหมดเวลาไว้ที่ 5 วินาที
  • Code สาย 16: ดึงชื่อเรื่องจากออบเจ็กต์ “browser”
  • Code สาย 17: ทดสอบสตริงชื่อเรื่องที่บันทึกไว้ด้วยคำว่า “Facebook”

ทำไมถึงต้องเลือก Python เกินกว่า Java in Selenium

มีข้อดีอยู่บ้างหลายประการ Python เกินกว่า Java ที่จะใช้กับ Selenium คือ:

  1. Java โปรแกรมมีแนวโน้มที่จะทำงานช้าลงเมื่อเทียบกับ Python โปรแกรม
  2. Java ใช้ตัวยึดแบบดั้งเดิมในการเริ่มต้นและสิ้นสุดบล็อก ในขณะที่ Python ใช้การเยื้อง
  3. Java ใช้ ty แบบคงที่pingในขณะที่ Python ถูกพิมพ์แบบไดนามิก
  4. Python ง่ายกว่าและกะทัดรัดกว่าเมื่อเทียบกับ Java.

คำถามที่พบบ่อย

รันคำสั่ง pip install selenium.Modern Selenium เรือด้วย Selenium โปรแกรมจัดการนี้จะดาวน์โหลดไดรเวอร์เบราว์เซอร์ที่ตรงกันโดยอัตโนมัติ ดังนั้นจึงไม่จำเป็นต้องติดตั้ง chromedriver ด้วยตนเอง

WebDriver คือ Selenium อินเทอร์เฟซที่ควบคุมเบราว์เซอร์จริง โดยส่งคำสั่งไปยัง Firefoxใช้เบราว์เซอร์ Chrome หรือ Edge เพื่อควบคุมการนำทาง การคลิก และการป้อนแบบฟอร์ม

Selenium 4 ลบ find_element_by_id ออกแล้ว ให้ใช้คลาส By แทน: จาก selenium.webdriver.common.by import By จากนั้น driver.find_element(By.ID, “email”)

การรอแบบไม่ระบุเงื่อนไข (Implicit wait) จะตรวจสอบ DOM เป็นระยะเวลาที่กำหนด การรอแบบระบุเงื่อนไข (Explicit wait หรือ WebDriverWait) จะหยุดชั่วคราวจนกว่าเงื่อนไขที่กำหนดไว้จะเกิดขึ้น ควรหลีกเลี่ยงการใช้ทั้งสองแบบผสมกันเพื่อป้องกันปัญหาเรื่องจังหวะเวลาที่ไม่แน่นอน

ลำดับ PyDev in Eclipse เป็นหนึ่งในตัวเลือก คุณยังสามารถเรียกใช้ได้อีกด้วย Selenium Python สคริปต์ใน PyCharm, VS Codeหรือจากบรรทัดคำสั่ง

Selenium WebDriver รองรับ FirefoxChrome, Edge, Safari และ Internet Explorer เหมือนกัน Python สคริปต์ทำงานข้ามพวกมันโดยการสลับping คนขับ.

ใช่แล้ว ผู้ช่วย AI อย่าง ChatGPT จะแปลงคำอธิบายการทดสอบที่เป็นภาษาธรรมดาให้กลายเป็น... Selenium Python เขียนโค้ด แนะนำตัวระบุตำแหน่ง และแปลงการเรียกใช้ find_element_by_id แบบเก่าให้เป็นไวยากรณ์ By

ใช่แล้ว GitHub Copilot แนะนำตัวระบุตำแหน่งที่เสถียร อธิบายข้อผิดพลาด NoSuchElementException และแนะนำการรอที่ชัดเจน ซึ่งช่วยลดการทดสอบที่ไม่เสถียรบนหน้าเว็บแบบไดนามิก

สรุปโพสต์นี้ด้วย: