ต้องอ่านคำถามและคำตอบสัมภาษณ์ 30 Selenium: Ultimate Guide 2022

เผยแพร่แล้ว: 2021-01-04

คุณกำลังเข้าร่วมการสัมภาษณ์ที่สำคัญและสงสัยว่า คำถามสัมภาษณ์ของ Selenium ทั้งหมดที่คุณจะผ่านคืออะไร?

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

ทุกวันนี้เว็บแอปกำลังเติบโต ด้วยความต้องการเว็บแอปที่เพิ่มขึ้น จึงมีความจำเป็นที่หลีกเลี่ยงไม่ได้ในการทดสอบเว็บแอปเหล่านี้ นั่นคือจุดเริ่มต้นของซีลีเนียม ซีลีเนียมเป็นหนึ่งในเครื่องมือทดสอบอัตโนมัติที่ใช้กันทั่วไป ซึ่งช่วยให้มั่นใจว่าเว็บแอปทำงานได้อย่างถูกต้อง หากทำการทดสอบด้วยตนเอง จะใช้เวลาทำงานหลายชั่วโมงและจะเพิ่มต้นทุนด้วย

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

ในบล็อกนี้ เราจะพูดถึง คำถามสัมภาษณ์เกี่ยวกับซีลีเนียมที่พบบ่อยที่สุด ที่นี่ สำหรับทั้ง ผู้เริ่มต้น และ คำถามสัมภาษณ์ Selenium สำหรับผู้มีประสบการณ์

คำถามและคำตอบสัมภาษณ์ซีลีเนียม 2022

คำถามที่ 1) เหตุใดจึงเลือกซีลีเนียมเหนือเครื่องมือทดสอบอัตโนมัติอื่นๆ

ซีลีเนียมเป็นโอเพ่นซอร์ส การปรับตัวนั้นง่ายมากเมื่อเทียบกับเครื่องมืออัตโนมัติอื่นๆ ในตลาด ด้วยเหตุผลนี้ หลายบริษัทจึงเลือกใช้การทดสอบแบบอัตโนมัติของ Selenium แทนวิธีการแบบเดิมอื่นๆ

คำถามที่ 2) ระบุประโยชน์ของซีลีเนียมเหนือเครื่องมืออย่าง TestComplete และ QTP นอกจากนี้ ข้อเสียคืออะไร?

ซีลีเนียมไม่ต้องการใบอนุญาต ซึ่งต่างจาก TestComplete และ QTP ที่หาซื้อได้ง่าย ชุมชนออนไลน์ให้การสนับสนุนอย่างมาก รอบการเผยแพร่มีขนาดเล็กลง และคำติชมจะพร้อมท์เมื่อเปรียบเทียบกับ TestComplete และ QTP นอกจากนี้ Selenium ยังทำงานบน Mac, Linux และ Windows อีกด้วย

ในทางตรงกันข้าม Selenium ต้องการให้นักพัฒนามีทักษะในการเขียนโปรแกรมสูง ในขณะที่ QTP และ TestComplete ต้องการทักษะการเขียนโค้ดในระดับต่ำถึงปานกลาง ตามลำดับ

Q.3) มีการเปลี่ยนแปลงอะไรบ้างในการอัพเกรดเวอร์ชั่น Selenium?

ใน Selenium เวอร์ชันแรก Selenium v1 ประกอบด้วยชุดเครื่องมือสามชุดเท่านั้น ได้แก่ Selenium IDE, RC และ Grid Webdriver หายไป เป็นเพียงในรุ่นที่สองของ Selenium, Selenium v2 ที่ Webdriver ถูกนำมาใช้ เมื่อดำเนินการเสร็จแล้ว Selenium RC จะไม่ถูกใช้งานอีกต่อไป

คุณสามารถหาได้ในตลาด แต่ไม่มีการสนับสนุน Selenium รุ่นต่อไปคือ Selenium v3 ประกอบด้วย Webdriver, IDE และ Grid มีการใช้งานอยู่ในขณะนี้ เวอร์ชันที่ใหม่กว่าคือ Selenium v4 ก็มีวางจำหน่ายแล้วเช่นกัน

Selenium IDE ใช้สำหรับบันทึกและเล่นเป็นหลัก Webdriver ใช้สำหรับทดสอบเว็บแอปพลิเคชันแบบไดนามิกโดยใช้อินเทอร์เฟซการเขียนโปรแกรม Grid ใช้สำหรับการทดสอบในเครื่องโฮสต์ระยะไกล

คุณต้องใช้ IDE เพื่อบันทึกและเล่นการทดสอบ WebDriver ใช้สำหรับทดสอบเว็บแอปพลิเคชันที่ใช้งานอยู่โดยใช้อินเทอร์เฟซการเขียนโปรแกรม และ Grid ใช้สำหรับปรับใช้การทดสอบในเครื่องโฮสต์ที่แยกออกมา

คำถามที่ 4) ข้อยกเว้นต่างๆ ใน ​​Selenium WebDriver มีอะไรบ้าง

เช่นเดียวกับภาษาการเขียนโปรแกรมอื่นๆ คุณสามารถหาข้อยกเว้นใน Selenium ได้เช่นกัน คุณสามารถค้นหาข้อยกเว้นต่อไปนี้ใน Selenium WebDriver:

TimeoutException: คุณได้รับข้อยกเว้นนี้เมื่อคำสั่งไม่ดำเนินการในเวลาที่กำหนด

NoSuchElementException: คุณได้รับข้อยกเว้นนี้เมื่อไม่พบองค์ประกอบที่มีคุณสมบัติที่กำหนดบนหน้าเว็บ

ElementNotVisibleException: คุณได้รับข้อยกเว้นนี้เมื่อมีองค์ประกอบในโมเดลวัตถุของเอกสาร แต่จะไม่เห็นในหน้าเว็บ

StaleElementException: คุณได้รับข้อยกเว้นนี้เมื่อองค์ประกอบไม่ได้แนบกับโมเดลวัตถุของเอกสารหรือถูกลบ

คำถามที่ 5) อธิบายการทดสอบข้อยกเว้นซีลีเนียม

ข้อยกเว้นที่คุณคาดว่าจะส่งภายในคลาสการทดสอบคือการทดสอบข้อยกเว้น หากคุณเขียนกรณีทดสอบที่ต้องการให้ส่งข้อยกเว้น คุณต้องใช้คำอธิบายประกอบ @test และระบุในพารามิเตอร์ด้วยว่าจะมีการส่งข้อยกเว้น ตัวอย่างเช่น

@Test (expectedException = NoSuchElementException.class)

Q.6) จำเป็นต้องมีแผ่นงาน excel ในโครงการหรือไม่? ใช่ยังไง?

แผ่นงาน Excel ถูกใช้เป็นแหล่งข้อมูลระหว่างการทดสอบ นอกจากนี้ยังจัดเก็บชุดข้อมูลขณะดำเนินการทดสอบที่ขับเคลื่อนด้วยข้อมูล เมื่อใช้แผ่นงาน Excel เป็นแหล่งข้อมูล สามารถจัดเก็บ:

URL ของแอปพลิเคชัน: นักพัฒนาสามารถระบุ URL สภาพแวดล้อมที่ดำเนินการทดสอบได้ ตัวอย่างเช่น สภาพแวดล้อมการทดสอบ สภาพแวดล้อมการพัฒนา สภาพแวดล้อม QA สภาพแวดล้อมการผลิต หรือสภาพแวดล้อมการแสดงละคร

ข้อมูลชื่อผู้ใช้และรหัสผ่าน: แผ่นงาน Excel สามารถเก็บข้อมูลรับรองการเข้าถึงอย่างปลอดภัย เช่น ชื่อผู้ใช้ของรหัสผ่านในสภาพแวดล้อมต่างๆ นักพัฒนาสามารถเข้ารหัสและจัดเก็บรายละเอียดเหล่านี้ได้ด้วยเหตุผลด้านความปลอดภัย

กรณีทดสอบ: นักพัฒนาสามารถสร้างตารางโดยที่คอลัมน์หนึ่งเขียนชื่อกรณีทดสอบและอีกคอลัมน์หนึ่งระบุว่าจะดำเนินการหรือไม่

หากคุณกำลังจะใช้แผ่นงาน Excel สำหรับการทดสอบ DataDriven คุณสามารถจัดเก็บข้อมูลสำหรับการทำซ้ำต่างๆ ที่จะดำเนินการในระหว่างการทดสอบได้อย่างง่ายดาย ตัวอย่างเช่น ข้อมูลทั้งหมดที่ต้องเขียนในกล่องข้อความสำหรับการทดสอบบนหน้าเว็บสามารถเก็บไว้ในแผ่นงาน Excel ได้

Q.7) POM คืออะไร? รายการข้อดีของมัน?

POM ย่อมาจาก Page Object Model เป็นรูปแบบการออกแบบสำหรับการสร้าง Object Repository สำหรับองค์ประกอบ UI ของเว็บ ทุกหน้าเว็บในแอปพลิเคชันต้องมีคลาสของเพจที่เกี่ยวข้องกัน ซึ่งมีหน้าที่ในการค้นหา WebElements ในหน้านั้น แล้วดำเนินการกับหน้าเว็บเหล่านั้น

ข้อดีของการใช้โมเดลอ็อบเจ็กต์ Page คือ:

  • ทำให้โค้ดอ่านได้โดยให้นักพัฒนาแยกการดำเนินการและ UI ออกจากการตรวจสอบ
  • การทดสอบหลายรายการสามารถใช้ Object Repository เดียวกันได้ เนื่องจากไม่ขึ้นกับกรณีทดสอบ
  • รหัสจะถูกนำมาใช้ซ้ำ

Q.8) Page Factory คืออะไร?

Page Factory นำเสนอวิธีการที่ปรับปรุงแล้วในการรัน Page Object Model โดยใช้หน่วยความจำอย่างมีประสิทธิภาพ และการดำเนินการเสร็จสิ้นโดยใช้การออกแบบเชิงวัตถุ

การดำเนินการ POM
กับเพจโรงงาน ไม่มีเพจโรงงาน
ใช้โดย () ใช้ @FindBy()
ไม่ต้องนำเข้า นำเข้าหน้าโรงงาน
ไม่มีที่เก็บข้อมูลแคช ค้นหาแคชเร็วขึ้น

Page Factory เริ่มต้นองค์ประกอบของ Page Object หรือสร้างอินสแตนซ์ของ Page Objects เอง สามารถสร้างคำอธิบายประกอบสำหรับองค์ประกอบได้ อันที่จริงเป็นวิธีที่ดีกว่าเนื่องจากคุณสมบัติการอธิบายอาจไม่แสดงออกมากพอที่จะแยกแยะวัตถุหนึ่งจากอีกวัตถุหนึ่ง

หากใช้ POM โดยไม่มีเพจแฟคทอรี แทนที่จะต้องใช้ 'FindElements' ระบบจะใช้ @FindBy เพื่อค้นหา WebElement และ initElements ใช้เพื่อเริ่มต้นองค์ประกอบเว็บจากคลาส Page Factory

@FindBy สามารถยอมรับแอตทริบิวต์เช่น tagName, name, partialLinkText , linkText, id, className , css และ xpath

Q.9) คุณบรรลุการซิงโครไนซ์ใน WebDriver ได้อย่างไร หรือบอกเราเกี่ยวกับคำสั่งรอประเภทต่าง ๆ Selenium Web Driver?

คุณสามารถค้นหาคำสั่ง wait สองรายการในไดรเวอร์เว็บ Selenium ได้แก่ Implicit Wait และ Explicit Wait

การรอโดยปริยายสั่งให้ WebDriver รอสักครู่โดยการสำรวจ DOM ซึ่งจะคงอยู่ตลอดอายุของอินสแตนซ์ไดรเวอร์เว็บ เมื่อมีการประกาศการรอโดยปริยาย ค่าที่ตั้งไว้ล่วงหน้าเป็นศูนย์ หากคุณตั้งค่ามากกว่าศูนย์ ลักษณะการทำงานจะสำรวจ DOM เป็นประจำตามการใช้งานไดรเวอร์

Explicit wait สั่งให้การดำเนินการรอสักครู่จนกว่าจะบรรลุเงื่อนไขเช่น:

  • elementToBeClickable
  • การมีอยู่ขององค์ประกอบตั้งอยู่
  • elementToBeSelected

อ่าน: คำถามและคำตอบสัมภาษณ์ฤดูใบไม้ผลิ

10) JavaScriptExecutor มีประโยชน์อย่างไร?

คุณสามารถรัน JavaScript ผ่าน Selenium Websriver โดยใช้ JavaScriptExecutor เป็นอินเทอร์เฟซที่นำเสนอกลไกนี้ มันให้วิธีการเช่น "executescript" และ "executeAsyncScript" เพื่อเรียกใช้ JavaScript ในสภาพของเฟรมหรือหน้าต่างที่เลือกในปัจจุบัน ตัวอย่างของสิ่งนั้นคือ:

JavascriptExecutor js = (JavascriptExecutor) ไดรเวอร์;

js.executeScript(สคริปต์,อาร์กิวเมนต์);

คำถามที่ 11) ฟังก์ชันใดให้คุณเลื่อนหน้าลงโดยใช้ JavaScript ใน Selenium

ฟังก์ชัน window.scrollBy() ช่วยให้คุณเลื่อนหน้าลงโดยใช้ JavaScript ใน Selenium ตัวอย่างเช่น:

(ไดรเวอร์ (JavascriptExecutor)).executeScript(“window.scrollBy(0,500”);

คำถามที่ 12) คุณจัดการกับการกระทำของเมาส์และคีย์บอร์ดโดยใช้ซีลีเนียมอย่างไร

การทำงานของเมาส์และคีย์บอร์ดแบบพิเศษได้รับการจัดการโดยใช้ Advanced User Interactions API ประกอบด้วย Actions และ Action Classes ที่จำเป็นสำหรับการดำเนินการกิจกรรมเหล่านี้ เหตุการณ์เมาส์และคีย์บอร์ดที่ใช้มากที่สุดนั้นกำหนดโดยคลาส Action คือ:

dragAndDrop(): เหตุการณ์นี้ดำเนินการคลิกค้างไว้ที่ตำแหน่งขององค์ประกอบต้นทาง ย้าย

source, target(): เลื่อนไปยังตำแหน่งขององค์ประกอบเป้าหมายและปล่อยเมาส์

clickAndHold(): คลิกตำแหน่งปัจจุบันของเมาส์

คำถามที่ 13) Selenium framework มีกี่ประเภท?

เฟรมเวิร์กซีลีเนียมประเภทต่างๆ ได้แก่ :

  • กรอบคำสำคัญที่ขับเคลื่อนด้วย: ในกรอบนี้ การดำเนินการและคำแนะนำจะถูกเขียนในไฟล์แยกต่างหากเช่น Excel
  • Data-Driven Framework: ในเฟรมเวิร์กนี้ ข้อมูลการทดสอบทั้งหมดจะนำมาจากไฟล์ต้นฉบับภายนอกบางไฟล์ เช่น XML, Excel, CSV หรือตารางฐานข้อมูลอื่นๆ
  • กรอบงานไฮบริด: เฟรมเวิร์กนี้เป็นการผสมผสานระหว่างเฟรมเวิร์กที่ขับเคลื่อนด้วยคีย์เวิร์ดและเฟรมเวิร์กจากข้อมูล

คำถามที่ 14) ตั้งชื่อไฟล์สองสามไฟล์ที่ใช้เป็นแหล่งข้อมูลสำหรับเฟรมเวิร์ก Selenium ต่างๆ

อาจเป็น XML, Excel, CSV หรือแม้แต่ไฟล์ข้อความ

คำถามที่ 15) Selenese คืออะไร?

Selenese เป็นกลุ่มคำสั่ง selenium เพื่อทดสอบเว็บแอปพลิเคชัน นักพัฒนาสามารถใช้ Assertions, Actions และ Accessors การยืนยันใช้เป็นด่านตรวจ การดำเนินการมีไว้สำหรับการดำเนินการที่กำลังดำเนินการ และ Accessors ใช้เพื่อเก็บค่าของตัวแปร

คำถามที่ 16) อะไรคือความแตกต่างที่สำคัญระหว่าง Page Factory และ Page Object Model (POM)

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

คำถามที่ 17) Selenium รองรับการจัดการหน้าต่างป๊อปอัปหรือไม่

ไม่ได้ ซีลีเนียมไม่รองรับการจัดการป๊อปอัป การแจ้งเตือน ซึ่งเป็นหน้าต่างป๊อปอัป จะแสดงข้อความเตือนบนหน้าจอ คุณสามารถทำสิ่งนี้ได้โดยใช้วิธีการสองสามวิธี เช่น:

ยกเลิกเป็นโมฆะ (): เมื่อคลิกปุ่มยกเลิกในกล่องแจ้งเตือน วิธีนี้จะถูกเรียก

ถือเป็นโมฆะ (): เมื่อคลิกปุ่ม 'ตกลง' ของการแจ้งเตือน ระบบจะเรียกวิธีการนี้

String getText(): หากคุณต้องการบันทึกข้อความเตือน คุณต้องเรียกวิธีนี้

Void sendKeys(String stringToSed): ถ้าคุณต้องการส่งข้อมูลไปยังกล่องแจ้งเตือน คุณต้องเรียกวิธีนี้

อ่าน: ตอบคำถามสัมภาษณ์และคำตอบ

Q.18) อธิบายคลาสหุ่นยนต์

คลาส Robot ให้การควบคุมอุปกรณ์คีย์บอร์ดและเมาส์

วิธีการประกอบด้วย:

  • KeyPress(): ถูกเรียกในเหตุการณ์ที่คุณต้องการกดปุ่ม
  • KeyRelease(): เรียกในเหตุการณ์เพื่อปล่อยคีย์ที่กด
  • MouseMove(): ถูกเรียกในเหตุการณ์เมื่อคุณต้องเลื่อนตัวชี้เมาส์ในพิกัด X และ Y
  • MousePress(): ถูกเรียกในเหตุการณ์เมื่อคุณกดปุ่มซ้ายของเมาส์
  • MouseMove(): เรียกในกรณีที่ปล่อยปุ่มที่กดของเมาส์

คำถามที่ 19) วิธีจัดการกับหน้าต่างหลายบานในซีลีเนียม

หมายเลขอ้างอิงหน้าต่างเป็นตัวระบุพิเศษที่มีที่อยู่ของหน้าต่างทั้งหมด ทำหน้าที่เป็นตัวชี้ไปยังหน้าต่างที่คืนค่าในสตริง

  • get.windowhandle(): รับตัวจัดการหน้าต่างปัจจุบัน
  • get.windowhandles(): รับหมายเลขอ้างอิงของหน้าต่างทั้งหมดที่เปิดอยู่
  • สลับไปที่: ช่วยในการสลับระหว่างหน้าต่าง
  • set: ตั้งค่าตัวจัดการหน้าต่าง ซึ่งอยู่ในรูปแบบของสตริง
  • การกระทำ: ช่วยในการดำเนินการบางอย่างบนหน้าต่าง

คำถามที่ 20) ผู้ฟังคืออะไร?

อินเทอร์เฟซที่เปลี่ยนการทำงานของระบบเรียกว่าฟังในซีลีเนียม เปิดใช้งานการปรับแต่งบันทึกและรายงาน มีสองประเภท: ผู้ฟัง TestNG และผู้ฟังของ Webdriver

คำถามที่ 21) อธิบายยืนยันและยืนยันคำสั่ง

ยืนยัน: การยืนยันใช้เพื่อแยกความแตกต่างระหว่างผลลัพธ์จริงและผลลัพธ์ที่คาดหวัง

ตรวจสอบ: การดำเนินการทดสอบจะไม่หยุดชั่วคราวไม่ว่าเงื่อนไขการตรวจสอบจะเป็นจริงหรือเท็จ

คำถามที่ 22) เรานำทางไปมาบนหน้าเว็บอย่างไร

เป็นหนึ่งในคำถามสัมภาษณ์ซีลีเนียมที่พบบ่อยที่สุด

คุณสามารถใช้วิธีการด้านล่างเพื่อเลื่อนไปมา

driver.navigate.forward

driver.manage.navigate

driver.manage.back

driver.navigate.to (“url”)

คำถามที่ 23) จะส่งคีย์ ALT/SHIFT/CONTROL ใน Selenium WebDriver ได้อย่างไร

โดยทั่วไปแล้วการใช้ปุ่มต่างๆ เช่น ALT, Shift หรือ Control เราจะรวมปุ่มเหล่านี้กับปุ่มอื่นๆ เพื่อเปิดใช้งานฟังก์ชัน เราไม่สามารถเพียงแค่คลิกพวกเขาเพียงอย่างเดียว เราจำเป็นต้องกำหนดสองวิธีเพื่อจุดประสงค์ในการถือกุญแจเหล่านี้ในขณะที่คีย์ต่อไปนี้คือ

กด: keyUp(modifier_key) และ keyDown(modifier_key)

พารามิเตอร์: Modifier_key (keys.ALT หรือ Keys.SHIFT หรือ Keys.CONTROL)

วัตถุประสงค์: จุดประสงค์คือมันทำการกดแป้นตัวปรับแต่งโดยไม่ต้องปล่อยปุ่มตัวปรับแต่ง การโต้ตอบต่อไปนี้อาจถือว่ามีการกดค้างไว้

พารามิเตอร์: Modifier_key (keys.ALT หรือ Keys.SHIFT หรือ Keys.CONTROL)

วัตถุประสงค์: จุดประสงค์คือทำการปล่อยคีย์

ด้วยการผสมผสานระหว่างสองวิธีนี้ เราจึงสามารถจับภาพฟังก์ชันพิเศษของคีย์เฉพาะได้

คำถามที่ 24) เราจะจับภาพหน้าจอใน Selenium WebDriver ได้อย่างไร

ฟังก์ชัน TakeScreenshot ช่วยในการจับภาพหน้าจอใน Selenium Webdriver นอกจากนี้ คุณสามารถบันทึกภาพหน้าจอโดยใช้เมธอด getScreenshotAs()

ไฟล์ scrFile = (ไดรเวอร์ (TakeScreenshot)).getScreenshotAs (outputType.FILE);

คำถามที่ 25) เราสามารถกำหนดขนาดของหน้าต่างเบราว์เซอร์โดยใช้ Selenium ได้หรือไม่? ถ้าใช่อย่างไร?

ใช่. หากคุณต้องการขยายขนาดหน้าต่างเบราว์เซอร์ให้ใหญ่สุด คุณต้องใช้รหัส

ไดรเวอร์.manage().window().maximize();

หากคุณต้องการปรับขนาดหน้าต่างปัจจุบันให้เป็นมิติเฉพาะ คุณต้องใช้เมธอด setSize() ตัวอย่างเช่น:

System.out.println(driver.manage().window().getSize()); System.out.println(driver.manage().window().getSize()); ระบบ

มิติ d = มิติใหม่ (420,600);

ไดรเวอร์.manage().window().setSize(d);

หากคุณต้องการตั้งค่าหน้าต่างให้มีขนาดเฉพาะ คุณต้องใช้เมธอด window.resizeTo()

ตัวอย่างเช่น:

((JavascriptExecutor) ไดรเวอร์).executeScript(“window.resizeTo(1024, 768);”);

คำถามที่ 26) จะเลือกค่าจากเมนูดร็อปดาวน์ได้อย่างไร วิธีจัดการกับรายการแบบหล่นลง?

คุณมักจะถูกถามเกี่ยวกับคำถามเกี่ยวกับดรอปดาวน์และการเลือกค่า เนื่องจากมีความยุ่งยากและเป็นเทคนิคเล็กน้อยเช่นกัน

รายละเอียดที่สำคัญที่สุดที่คุณต้องรู้คือการทำงานกับดรอปดาวน์ในซีลีเนียม จำเป็นต้องใช้แท็ก html: 'select' คุณไม่สามารถจัดการกับเมนูดร็อปดาวน์ได้โดยไม่ต้องใช้แท็กเลือก ดูรหัสด้านล่าง:

<select id="mySelect">

<option value=”option1″>เค้ก</option>

<option value=”option2″>ช็อคโกแลต</option>

<option value=”option3″> ลูกอม</option>

</select>

ในโค้ดด้านบน แท็ก 'select' ของ HTML ใช้เพื่อกำหนดองค์ประกอบแบบเลื่อนลง ID ของแท็ก select นี่คือ myselect เราได้ให้สามตัวเลือกในรายการดรอปดาวน์: เค้ก ช็อคโกแลต และขนม คุณจะเห็นว่าแต่ละตัวเลือกเหล่านี้มีแอตทริบิวต์ค่าที่แนบมา ตัวอย่างเช่น สำหรับ Cake ค่าคือ Option1 สำหรับ Chocolates คือ Option2 และสำหรับ Candies คือ Option3

ในการเลือกค่า คุณต้อง:

ระบุองค์ประกอบ 'select' html โดยใช้ findelement()

ตัวอย่าง:

WebElement mySelectElement = driver.findElement(By.id(“mySelect”));

เลือกแบบเลื่อนลง = เลือกใหม่ (mySelectElement);

เลือกตัวเลือกจากองค์ประกอบดรอปดาวน์นั้น

ในการเลือกตัวเลือกจากดรอปดาวน์นั้น มีสามวิธี:

dropdown.selectByVisibleText("ช็อกโกแลต"); → เลือกตัวเลือกตามข้อความที่เห็น

dropdown.selectByIndex(“1”); → การเลือกตัวเลือกโดยใช้หมายเลขดัชนีของตัวเลือกนั้น

dropdown.selectByValue(“option2”); → การเลือกตัวเลือกโดยใช้ค่าของตัวเลือกนั้น

โปรดทราบว่าในทุกกรณี จะเลือกตัวเลือก “ช็อคโกแลต” จากเมนูแบบเลื่อนลง จุดที่ 1 และ 3 มีความชัดเจนและจุดที่สอง เราพูดว่า “1” เพราะการจัดทำดัชนีเริ่มจากศูนย์

อ่าน: คำถามและคำตอบในการสัมภาษณ์ยอดนิยมของ Nagios

คำถามที่ 27) คุณจะข้ามไปที่แท็บใหม่ซึ่งเปิดขึ้นหลังจากคลิกลิงก์ได้อย่างไร

เมื่อคลิกลิงก์บนหน้าเว็บ คุณต้องใช้คำสั่ง switchTo() เพื่อเปลี่ยนโฟกัสของ Webdriver ตัวอย่าง: driver.switchTo().window();

โดยที่ 'windowName' คือชื่อของหน้าต่างที่คุณต้องการเปลี่ยนโฟกัสไปที่

หากคุณไม่มีชื่อหน้าต่าง คุณสามารถใช้คำสั่ง driver.getWindowHandle() เพื่อดึงชื่อหน้าต่างทั้งหมดที่เริ่มต้นโดย WebDriver โปรดจำไว้ว่า มันจะไม่ให้ชื่อของหน้าต่างเหล่านั้นซึ่ง Webdriver ไม่ได้เริ่มต้นให้คุณ

ในการรับชื่อ คุณจะต้องวนซ้ำเพื่อไปที่หน้าต่างนั้น นี่คือตัวอย่าง:

ตัวจัดการสตริง = driver.getWindowHandle();

สำหรับ (ตัวจัดการสตริง: driver.getWindowHandles())

{

ไดรเวอร์.switchTo().window(จัดการ);

}

คำถามที่ 28) เราจะอัปโหลดไฟล์ใน Selenium WebDriver ได้อย่างไร

คำสั่ง element.send_keys(เส้นทางของไฟล์) ใช้เพื่ออัปโหลดไฟล์ใน Selenium Webdriver แต่ก่อนหน้านั้น คุณต้องใช้แท็ก html: 'input' โดยที่ประเภทแอตทริบิวต์ควรเป็น 'file' นี่คือตัวอย่างเพื่อให้เข้าใจได้ดีขึ้น:

<ประเภทอินพุต=”ไฟล์” ชื่อ=”my_uploaded_file” ขนาด=”50″ class=”pole_plik”>

องค์ประกอบ = driver.find_element_by_id(”my_uploaded_file”)

element.send_keys(“C:myfile.txt”)

คำถามที่ 29) ความสำคัญของ testng.xml คืออะไร?

หากคุณกำลังสัมภาษณ์ซีลีเนียม คุณก็รู้ถึงความสำคัญของการทดสอบอย่างแน่นอน ซีลีเนียมไม่รองรับการสร้างรายงานและการจัดการกรณีทดสอบ ดังนั้นเราจึงใช้เฟรมเวิร์ก TestNG กับ Selenium มีความล้ำหน้ามากเมื่อเทียบกับ Junit และง่ายกว่าในการใช้คำอธิบายประกอบ ทำให้เฟรมเวิร์ก TestNG เป็นตัวเลือกด้วย Selenium Webdriver

คุณสามารถกำหนดชุดการทดสอบและการจัดกลุ่มของคลาสการทดสอบใน TestNG โดยใช้คำสั่งจากไฟล์ testing.xml มันถูกแสดงในไฟล์ XML และไม่ใช่ในชุดทดสอบภายในซอร์สโค้ดการทดสอบ เนื่องจากชุดนี้เป็นคุณลักษณะของการดำเนินการ ชุดทดสอบคือกลุ่มหรือชุดของกรณีทดสอบ

ไฟล์ testng.xml ควรมีชื่อของเมธอดและคลาสทั้งหมดที่คุณต้องการดำเนินการเป็นส่วนหนึ่งของโฟลว์การดำเนินการนั้น

ข้อดีบางประการของการใช้ไฟล์ testng.xml คือ:

  • อนุญาตให้ดำเนินการกรณีทดสอบหลายกรณีจากหลายคลาส
  • อนุญาตให้ดำเนินการกรณีทดสอบในกลุ่ม โดยที่การทดสอบเดียวสามารถอยู่ในหลายกลุ่มได้
  • อนุญาตให้ดำเนินการแบบขนาน

คำถามที่ 30) อธิบายผู้ให้บริการข้อมูลใน TestNG เป็นไปได้ไหมที่จะเรียกเมธอด data provider เดียวสำหรับหลายฟังก์ชันและคลาส?

หนึ่งในคำถามสัมภาษณ์ซีลีเนียมขั้นสูง DataProvider เป็นคุณลักษณะของ TestNG ทำให้นักพัฒนาสามารถเขียนการทดสอบ DataDriven ได้ รองรับการทดสอบ DataDriven ซึ่งหมายความว่าวิธีการทดสอบเดียวกันสามารถเรียกใช้ได้หลายครั้งด้วยชุดข้อมูลที่แตกต่างกัน DataProvider เป็นเพียงวิธีการส่งพารามิเตอร์ไปยังวิธีทดสอบ

@DataProvider เป็นวิธีการให้ข้อมูลสำหรับวิธีการทดสอบ วิธีการที่มีคำอธิบายประกอบต้องคืน Object[] โดยที่แต่ละ Object[] สามารถจัดสรรให้กับรายการพารามิเตอร์ของวิธีการทดสอบได้

ใช่. เป็นไปได้ที่จะเรียกใช้เมธอดผู้ให้บริการข้อมูลเดียวสำหรับหลายฟังก์ชันและคลาส DataProvider เดียวกันสามารถใช้ได้ในหลายฟังก์ชันและหลายคลาส โดยประกาศ DataProvider ในคลาสที่แยกจากกัน แล้วใช้อีกครั้งในหลายคลาส

คำถามที่ 31) คุณสมบัติของ TestNG คืออะไร?

  • ก่อนและหลังคำอธิบายประกอบ
  • การกำหนดค่าการทดสอบตาม XML
  • การประมวลผลแบบมัลติเธรด
  • เปิด API
  • การรายงานที่ดีขึ้น
  • การทดสอบที่ขับเคลื่อนด้วยข้อมูล
  • กลุ่มที่อยู่ในความอุปการะ
  • วิธีการขึ้นอยู่กับ

รับ หลักสูตรการพัฒนาซอฟต์แวร์ จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

บทสรุป

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

หากคุณสนใจที่จะเรียนรู้ Selenium, DevOps และทุกอย่างเกี่ยวกับการพัฒนา Full Stack โปรดดูที่ IIIT-B & upGrad's Executive PG Program ใน Full Stack Software Development Program

เตรียมความพร้อมสู่อาชีพแห่งอนาคต

สมัครเลยตอนนี้สำหรับปริญญาโทด้านวิศวกรรมซอฟต์แวร์