6 วิธีที่ง่ายที่สุดในการหาส่วนประกอบในซีลีเนียม
เผยแพร่แล้ว: 2022-05-19ส่วนประกอบในซีลีเนียมมีบทบาทสำคัญในการทดสอบแอปพลิเคชันหรือซอฟต์แวร์ เหล่านี้เป็นส่วนประกอบสำคัญของสคริปต์การทำงานอัตโนมัติของซีลีเนียม แต่ความท้าทายที่แท้จริงคือการค้นหาส่วนประกอบเหล่านี้เมื่อจำเป็นบนหน้าเว็บ
โชคดีที่มีหลายวิธีในการค้นหาส่วนประกอบเหล่านี้ในซีลีเนียม คุณสามารถค้นหาส่วนประกอบเฉพาะสำหรับการใช้งานเฉพาะที่ช่วยคุณในการโหลดข้อมูลต่างๆ ใน การทดสอบระบบ อัตโนมัติ
สิ่งเหล่านี้เรียกว่าตัวระบุตำแหน่งหรือเทคนิคการค้นหาที่ไม่มีอะไรนอกจากคำสั่งที่ทรงพลัง ด้วยการใช้ตัวระบุตำแหน่งเหล่านี้ คุณสามารถค้นหาส่วนประกอบ GUI ได้อย่างรวดเร็ว ซึ่งคุณสามารถดำเนินการกับผู้ใช้หลาย ๆ อย่างได้
แต่ก่อนที่จะมองหาวิธีต่างๆ ในการค้นหาส่วนประกอบในซีลีเนียม สิ่งสำคัญคือต้องเข้าใจว่าส่วนประกอบเหล่านี้คืออะไรและทำงานอย่างไร
ส่วนประกอบในซีลีเนียม
เครื่องมือที่ดีที่สุดสำหรับการทดสอบการถดถอยเว็บไซต์หรือการโหลดข้อมูลอัตโนมัติคือ Selenium อย่างไม่ต้องสงสัย พูดง่ายๆ ก็คือ เราสามารถพูดได้ว่า Selenium เป็นเครื่องมือที่มีประสิทธิภาพในการควบคุมเว็บเบราว์เซอร์ผ่านโปรแกรมหรือคำสั่งต่างๆ
ใช้งานได้จริงกับทุกเบราว์เซอร์และให้คุณใช้งานระบบปฏิบัติการที่สำคัญทุกระบบได้ สคริปต์ประกอบด้วยภาษาการเขียนโปรแกรมหลายภาษา เช่น Python, Java, C# เป็นต้น นอกจากนี้ยังใช้ภาษาอื่นอีกหลายภาษาควบคู่ไปกับภาษาเหล่านี้ และที่นี่เราจะใช้ภาษา Python ที่ได้รับความนิยมอย่างมากเพื่อให้เข้าใจได้ง่าย
ซีลีเนียมมีองค์ประกอบหลักสี่ประการ ได้แก่ Selenium IDE, Selenium RC, Selenium Web Driver และ Selenium GRID
ซีลีเนียมมีอยู่ในธุรกิจมาระยะหนึ่งแล้วโดยผู้ทดสอบการใช้เครื่องจักรทั่วโลก
มาดูองค์ประกอบหลักสี่ประการของซีลีเนียมกัน –
ซีลีเนียม IDE
Selenium IDE (หรือที่เรียกว่า Integrated Development Environment) เป็นหนึ่งในอุปกรณ์สำคัญใน Selenium Suite เป็นสภาพแวดล้อมการพัฒนาแบบบูรณาการ (IDE) ทั้งหมดสำหรับการทดลองซีลีเนียม มีการบังคับใช้เป็นส่วนเสริมของ Firefox เช่นเดียวกับส่วนขยายของ Chrome
อีกแง่มุมหนึ่งของ Selenium IDE คือช่วยให้สามารถจับภาพ เขียนใหม่ และแก้จุดบกพร่องของการทดลองใช้งานจริงได้ เดิมชื่อ Selenium Recorder Selenium-IDE ก่อตั้งขึ้นครั้งแรกโดย Shinya Kasatani และมอบให้กับโครงการ Selenium ในปี 2549
Selenium IDE ไม่ได้รับการดูแลอย่างเหมาะสมก่อนหน้านี้และเริ่มให้บริการในปี 2018
งานเขียนอาจถูกจับและแก้ไขด้วยตนเอง ให้ความช่วยเหลือในการเติมข้อความอัตโนมัติและความสามารถในการเปลี่ยนคำสั่งอย่างรวดเร็ว มีการรายงานสคริปต์เป็นภาษาเซเลนีส ซึ่งเป็นภาษาสคริปต์ทดลองเฉพาะสำหรับซีลีเนียม
Selenese ส่งคำสั่งสำหรับการทำกิจกรรมในเบราว์เซอร์ (กดลิงก์ เลือกทางเลือกอื่น) และรับข้อมูลจากหน้าที่เกิดขึ้น
ซีลีเนียม RC (รีโมทคอนโทรล)
Selenium Remote Control (aka RC) เป็นเว็บเซิร์ฟเวอร์ที่ประกอบด้วยภาษา Java ที่ให้สัตยาบันคำสั่งผ่านเบราว์เซอร์ผ่าน HTTP RC ช่วยให้เขียนการทดสอบด้วยคอมพิวเตอร์สำหรับเว็บแอปในภาษาเขียนโค้ดหลายภาษาได้ง่ายขึ้น ทำให้สามารถผสานรวม Selenium เข้ากับเฟรมเวิร์กการทดสอบส่วนประกอบได้อย่างเหมาะสม
ปัจจุบันโปรแกรม Selenium ได้จัดเตรียมไดรเวอร์สำหรับผู้บริโภคไว้หลายภาษา เช่น PHP, Python, Ruby, .NET, Perl และ Java เพื่อทำให้การทดสอบวิทยานิพนธ์ง่ายขึ้น นอกจากนี้ คุณสามารถใช้ Java Driver พร้อม JavaScript (ผ่านเอ็นจิ้น Rhino)
ต้องใช้ตัวอย่างของเซิร์ฟเวอร์ซีลีเนียม RC เพื่อเผยแพร่การทดลองใช้ HTML ซึ่งหมายความว่า Dock จะต้องมีหลายรายการสำหรับการเรียกใช้ความคล้ายคลึงกันทุกครั้ง อย่างไรก็ตาม สำหรับกรณีทดสอบ Java/PHP จำเป็นต้องมีตัวอย่าง Selenium RC เพียงตัวอย่างเดียวเพื่อดำเนินการอย่างไม่สิ้นสุด
ไดรเวอร์เว็บซีลีเนียม
Selenium WebDriver เป็นผู้สืบทอดของ Selenium RC Selenium WebDriver ปฏิบัติตามคำสั่งต่างๆ (ส่งเป็นภาษา Selenese หรือผ่าน Client API) และจัดเตรียมคำสั่งเหล่านั้นไปยังเบราว์เซอร์ สิ่งนี้บังคับใช้ผ่านไดรเวอร์เบราว์เซอร์เฉพาะของเบราว์เซอร์ที่ส่งคำสั่งไปยังเบราว์เซอร์และรับผลลัพธ์
ไดรเวอร์เบราว์เซอร์เกือบทั้งหมดเปิดและเข้าถึงแอปเบราว์เซอร์ได้อย่างแน่นอน (เช่น Mozilla Firefox, Google Chrome, Internet Explorer, Safari หรือแม้แต่ Microsoft Edge); นอกจากนี้ ไดรเวอร์เบราว์เซอร์ HtmlUnit จะจำลองเบราว์เซอร์โดยใช้แอปพลิเคชัน HtmlUnit ที่ไม่มีส่วนหัว
Selenium WebDriver ไม่ต้องการเซิร์ฟเวอร์เฉพาะเพื่อบังคับใช้การทดสอบ แต่ WebDriver จะเปิดภาพประกอบเบราว์เซอร์อย่างรวดเร็วและควบคุม อย่างไรก็ตาม คุณสามารถใช้ Selenium Grid กับ WebDriver เพื่อทำการทดสอบบนเครือข่ายระยะไกลได้
หากเป็นไปได้ WebDriver จะใช้ฟังก์ชันระดับระบบปฏิบัติการดั้งเดิมแทนคำแนะนำ JavaScript บนเบราว์เซอร์เพื่อเรียกใช้แอปพลิเคชัน วิธีนี้ช่วยข้ามปัญหาที่มีความคลาดเคลื่อนเล็กน้อยระหว่างคำสั่งอะบอริจินและจาวาสคริปต์ ซึ่งครอบคลุมข้อบังคับด้านความปลอดภัย
ซีลีเนียม GRID
Selenium Grid เป็นเซิร์ฟเวอร์ที่ช่วยให้การทดลองใช้ตัวอย่างเว็บเบราว์เซอร์ที่ทำงานบนอุปกรณ์แยก ฮับบันทึกเซิร์ฟเวอร์ที่เข้าถึงตัวอย่างเบราว์เซอร์ (โหนด WebDriver) และอนุญาตให้การทดสอบใช้ตัวอย่างเหล่านี้
Selenium Grid อนุญาตให้ทำการทดสอบการโต้ตอบบนอุปกรณ์หลายเครื่องและควบคุมรุ่นเบราว์เซอร์ที่แตกต่างกันและองค์ประกอบของเบราว์เซอร์จากส่วนกลาง (แทนที่จะเป็นการทดสอบแต่ละรายการ)

ความชำนาญในการควบคุมการทดสอบบนอินสแตนซ์ของเบราว์เซอร์ที่แยกออกมาต่างหากจะเป็นประโยชน์ในการเผยแพร่กฎแห่งการทดสอบในเครื่องต่างๆ และดำเนินการทดสอบในแอปพลิเคชันที่ทำงานบนหลายแพลตฟอร์มหรือระบบปฏิบัติการ อีกประการหนึ่งมีประโยชน์ในกรณีที่แอปพลิเคชันทั้งหมดที่ใช้ในการทดสอบไม่สามารถทำงานบนแพลตฟอร์มเดียวกันได้
6 วิธีที่ง่ายที่สุดในการหาส่วนประกอบในซีลีเนียม
วิธีต่างๆ เป็นเพียงตัวระบุตำแหน่งในซีลีเนียม ตัวระบุตำแหน่งเหล่านี้เป็นคำสั่งที่มีประสิทธิภาพซึ่งสามารถเข้าถึงได้เพื่อป้อนและค้นหาองค์ประกอบ GUI ในซีลีเนียม นอกจากนี้ คุณสามารถใช้คำสั่งเหล่านี้เพื่อดำเนินการกับผู้ใช้หลายรายการ
รายการ 6 วิธีง่าย ๆ ในการค้นหาส่วนประกอบ GUI ในซีลีเนียมคือ-
- ไอดี
- ชื่อ
- ข้อความลิงค์
- ข้อความลิงก์บางส่วน
- ชื่อแท็ก
- ชื่อคลาส
เมื่อใช้ตัวระบุตำแหน่งด้านบนใน Selenium WebDriver คุณสามารถค้นหาส่วนประกอบผ่านไวยากรณ์ "findElement/findElements"
1. ID Locator
รหัสคือตัวเลือกตัวระบุตำแหน่งที่มีประสิทธิภาพและเร็วที่สุดในการค้นหาส่วนประกอบในซีลีเนียม รหัสคือตัวเลขเฉพาะเพื่อระบุส่วนประกอบใดๆ ID locator เรียก document.getElementById() ทำให้เป็นตัวเลือกตัวระบุตำแหน่งที่เร็วที่สุด เบราว์เซอร์จำนวนมากปรับ iD ให้เหมาะสม
2. ตัวระบุชื่อ
หลังจากที่ตัวระบุตำแหน่ง ID มาถึงตัวระบุชื่อ มันจะมีประโยชน์หากองค์ประกอบเว็บใดๆ ไม่มีแอตทริบิวต์ ID แต่ปัญหาของตัวระบุชื่อคือไม่สามารถซ้ำกันได้ทุกครั้ง ซีลีเนียมจะเลือกองค์ประกอบที่ตรงกันเป็นอันดับแรกเพื่อดำเนินการใดๆ หากมีชื่ออย่างน้อยสองชื่อขึ้นไป
3. LinkText Locator
เป็นตัวเลือกตำแหน่งตามสถานการณ์ LinkText Locator เข้าถึงลิงก์โดยใช้ข้อความลิงก์ที่ถูกต้องผ่านวิธี By.linkText () อย่างไรก็ตาม อาจมีสถานการณ์ที่การเชื่อมโยงตั้งแต่สองรายการขึ้นไปมีข้อความลิงก์ที่แน่นอน ในสถานการณ์นี้ Selenium จะเลือกองค์ประกอบแรกที่ตรงกันพร้อมลิงก์เพื่อดำเนินการใดๆ
4. ตัวระบุตำแหน่งข้อความลิงก์บางส่วน
นี่เป็นอีกตัวเลือกการค้นหาตามสถานการณ์ LinkText Locator บางส่วนเข้าถึงลิงก์โดยใช้ส่วนของข้อความลิงก์ผ่าน วิธี By.partialLinkText() การจับคู่ครั้งแรกจากทั้งหมดจะเข้าถึงได้หากคุณระบุข้อความลิงก์บางส่วนที่มีการจับคู่หลายรายการ
5. ตัวระบุชื่อแท็ก
TagName Locator เป็นส่วนหนึ่งของโครงสร้าง DOM และในโครงสร้างนี้ ทุกองค์ประกอบบนหน้าเว็บ Selenium ถูกกำหนดผ่านแท็กต่างๆ เช่น แท็กปุ่ม แท็กอินพุต แท็ก anchor ฯลฯ แต่ละแท็กมาพร้อมกับแอตทริบิวต์ต่างๆ เช่น ชื่อ คลาสของค่า ID ฯลฯ
6. ตัวระบุชื่อคลาส
เมื่อมีการกำหนดองค์ประกอบโดยใช้แอตทริบิวต์ class ClassName Locator คือวิธีที่ดีที่สุดในการค้นหาองค์ประกอบเหล่านั้น ส่วนที่ดีที่สุดเกี่ยวกับแอตทริบิวต์ของ Class คือไม่จำเป็นต้องมีลักษณะเฉพาะเหมือน ID
วิธีอื่นในการค้นหาส่วนประกอบในซีลีเนียม
นอกจากวิธีที่โดดเด่นที่สุด 6 วิธีในการค้นหาส่วนประกอบในซีลีเนียมแล้ว ยังมีอีกสองวิธี วิธีการเหล่านี้ไม่ได้เน้นย้ำแต่มีประสิทธิภาพในการใช้งาน
1. XPath
นิพจน์ XPath มีวิธีที่เชื่อถือได้ในการค้นหาคอมโพเนนต์ของเว็บ แต่ก็เป็นวิธีที่ช้าที่สุดในบรรดาตัวระบุตำแหน่ง เอ็นจิ้น XPath นั้นไม่สอดคล้องกันในเบราว์เซอร์ต่างๆ เนื่องจากในแต่ละเบราว์เซอร์ต่างกัน ตัวอย่างเช่น รหัส XPath ของคุณจะไม่ทำงานบน IE หากคุณเขียนมันใน Chrome
2. ตัวเลือก CSS
หากองค์ประกอบเว็บไม่มี ID หรือชื่อ วิธีที่ดีที่สุดในการค้นหาคือการใช้ตัวเลือก CSS เมื่อเปรียบเทียบกับ XPath แล้ว CSS จะเร็วกว่าและอ่านง่ายกว่า CSS เข้ากันได้กับเบราว์เซอร์ยอดนิยมทั้งหมดและปรับปรุงประสิทธิภาพ CSS จะมีประโยชน์เมื่อคุณต้องการทดสอบแอปพลิเคชันของเราบนเบราว์เซอร์หลายตัว CSS ดีที่สุดสำหรับ IE เนื่องจาก XPath เป็น IE ที่ไม่ทำงาน
เริ่มการทดสอบระบบซีลีเนียมอัตโนมัติด้วย LambdaTest
การค้นหาส่วนประกอบในซีลีเนียมจำเป็นต้องมีการรับรู้ถึงตำแหน่งของส่วนประกอบบนหน้าเว็บและวิธีที่เป็นไปได้ทั้งหมดในการสร้างแนวทางที่ถูกต้อง เราได้ระบุวิธีที่ดีที่สุดหกวิธีในการทำเช่นนี้ อย่างไรก็ตาม คุณอาจพบอีกสองสามอย่าง แต่สิ่งที่เราระบุไว้ข้างต้นนั้นเพียงพอที่จะค้นหาส่วนประกอบซีลีเนียมทั้งหมด Selenium เป็นเรื่องง่ายด้วยเฟรมเวิร์ก LambdaTest โดยที่ส่วนประกอบที่จำเป็นทั้งหมดอยู่แค่เพียงปลายนิ้วสัมผัส
LambdaTest ซึ่งเป็นแพลตฟอร์มการทดสอบระบบคลาวด์ที่มีประสิทธิภาพ จะช่วยคุณเร่งทักษะการทดสอบอัตโนมัติของคุณ ให้ การทดสอบเบราว์เซอร์อัตโนมัติ ด้วยเครื่องมือทดสอบระบบอัตโนมัติชั้นนำ เช่น Selenium, Cypress, Playwright และ Puppeteer ในเบราว์เซอร์เดสก์ท็อปและมือถือกว่า 3000+ ตัว และใช้เครื่องมือสำหรับนักพัฒนาแบบบูรณาการสำหรับการดีบักที่จะช่วยให้คุณเรียนรู้เครื่องมือทดสอบระบบอัตโนมัติขั้นสูง นอกจากนี้ยังมีผู้ใช้ประจำมากกว่า 600,000 รายจาก 130 ประเทศ
Selenium กับ LambdaTest เป็นคู่เดียวที่คุณต้องการเพื่อเพิ่มเส้นทางการทดสอบของคุณ