Action Class ใน Selenium & It's Applications คืออะไร?
เผยแพร่แล้ว: 2021-05-19Action Class ใน Selenium เป็นคุณลักษณะในตัวที่นำเสนอโดยซีลีเนียมสำหรับจัดการเหตุการณ์แป้นพิมพ์และเมาส์ สามารถจัดการการดำเนินการและเหตุการณ์ต่างๆ เช่น ปุ่มควบคุม การลากและวาง และอื่นๆ อีกมากมาย การดำเนินการของ Action Class ดำเนินการโดยใช้คุณลักษณะ API การโต้ตอบผู้ใช้ขั้นสูงของ Selenium Webdriver
สารบัญ
เหตุการณ์แป้นพิมพ์และเมาส์ที่ใช้กันทั่วไป
เหตุการณ์แป้นพิมพ์และเมาส์พิเศษได้รับการจัดการโดยใช้ Advanced User Interactions API API นี้มีคลาส Action และ Actions ที่จำเป็นขณะดำเนินการกิจกรรมเหล่านี้ ด้านล่างนี้คือเหตุการณ์แป้นพิมพ์และเมาส์ที่ใช้กันทั่วไปซึ่งมีให้ในคลาส Action
วิธี | คำอธิบาย |
คลิกค้างไว้ () | คลิกโดยไม่ปล่อยที่ตำแหน่งเมาส์ปัจจุบัน |
บริบทคลิก () | ทำการคลิกตามบริบท (คลิกขวาเมาส์) ที่ตำแหน่งเมาส์ปัจจุบัน |
ดับเบิลคลิก() | ดำเนินการดับเบิลคลิกที่ตำแหน่งเมาส์ปัจจุบัน |
ลากและวาง (ต้นทาง, เป้าหมาย) | ดำเนินการคลิกค้างไว้ที่ตำแหน่งองค์ประกอบต้นทาง จากนั้นย้ายไปยังตำแหน่งองค์ประกอบเป้าหมายแล้วปล่อยเมาส์ พารามิเตอร์: องค์ประกอบแหล่งที่มาเพื่อจำลองเหตุการณ์ปุ่มลง องค์ประกอบเป้าหมายเพื่อย้ายและปล่อยเมาส์ |
dragAnd DropBy (แหล่งที่มา, x-offset, y-offset) | ดำเนินการคลิกค้างไว้ที่ตำแหน่งองค์ประกอบต้นทาง เคลื่อนที่ตามออฟเซ็ตที่ระบุ จากนั้นปล่อยเมาส์ พารามิเตอร์: องค์ประกอบแหล่งที่มาเพื่อจำลองเหตุการณ์ปุ่มลง xOffset- เพื่อระบุออฟเซ็ตการย้ายแนวนอน yOffset- เพื่อระบุออฟเซ็ตการย้ายแนวตั้ง |
keyDown(modifier_key) | ดำเนินการเหตุการณ์การกดแป้นตัวแก้ไข ไม่ปล่อยคีย์ตัวปรับแต่งด้วยการโต้ตอบที่ตามมาโดยถือว่าถูกกด พารามิเตอร์: modifier_key เพื่อแสดงคีย์ตัวปรับแต่งใดๆ เช่น Keys.SHIFT, Keys.ALT หรือ Keys.CONTROL |
คีย์ขึ้น (modifier_key) | ดำเนินการปล่อยคีย์ พารามิเตอร์: modifier_key เพื่อแสดงคีย์ตัวปรับแต่งใดๆ เช่น Keys.SHIFT, Keys.ALT หรือ Keys.CONTROL |
moveByOffset(x-offset, y-offset) | เลื่อนเมาส์จากตำแหน่งปัจจุบันตามออฟเซ็ตที่ระบุ พารามิเตอร์: x-offset เพื่อระบุออฟเซ็ตแนวนอน ค่าลบหมายความว่าเมาส์กำลังเคลื่อนไปทางซ้าย y-offset เพื่อระบุออฟเซ็ตแนวตั้ง ค่าลบหมายความว่าเมาส์กำลังเคลื่อนลงด้านล่าง |
ย้ายToElement(toElement) | เลื่อนเมาส์จากตรงกลางไปยังตรงกลางขององค์ประกอบ พารามิเตอร์: องค์ประกอบที่เป็นตัวแทนขององค์ประกอบที่จะย้ายไป |
ปล่อย() | ปล่อยปุ่มเมาส์ซ้ายของเมาส์ที่กดที่ตำแหน่งเมาส์ปัจจุบัน |
sendKeys(onElement, ลำดับ) | ส่งชุดการกดแป้นพิมพ์ไปยังองค์ประกอบ พารามิเตอร์: องค์ประกอบที่แสดงถึงองค์ประกอบที่จะรับการกดแป้นพิมพ์ มักจะเป็นฟิลด์ข้อความ ลำดับถ่าน- ค่าสตริงใดๆ ที่แสดงถึงลำดับของการกดแป้นที่ส่ง |
ตัวอย่างการประยุกต์ใช้ Selenium Action Class
1. นำเข้า Action และ คลาส Action
นำเข้า org.open a.selenium.interactions.Action;
นำเข้า org.open a.selenium.interactions.Actions;
2. สร้างอ็อบเจกต์ Actions ใหม่
ตัวสร้างการดำเนินการ = การดำเนินการใหม่ (ไดรเวอร์);
3. สร้างอินสแตนซ์ของการดำเนินการโดยใช้อ็อบเจ็กต์ Action ในขั้นตอนก่อนหน้า
Action mouseOverHome = ผู้สร้าง
.moveToElement(link_Home)
.สร้าง();
ที่นี่ เราใช้เมธอด moveToElement() เพื่อวางเมาส์ไว้เหนือลิงก์โฮม build() เป็นวิธีสุดท้ายเสมอเพื่อให้แน่ใจว่าการกระทำทั้งหมดถูกรวบรวมในขั้นตอนเดียว
4. ใช้วิธีการดำเนินการในขณะที่ดำเนินการวัตถุการดำเนินการที่เราประกาศในขั้นตอนก่อนหน้านี้
ไวยากรณ์:
mouseOverHome.perform();
ตัวอย่างที่ 2:
ให้เรายกตัวอย่างอื่นที่ใช้คลาส Action เพื่อนำคุณสมบัติการเติมข้อความอัตโนมัติของกล่องข้อความไปใช้
ในการดำเนินการด้วยตนเอง เรากดปุ่ม shift พิมพ์ข้อความที่ต้องป้อนด้วยตัวพิมพ์ใหญ่ แล้วปล่อยปุ่ม shift กดปุ่ม Shift + ตัวอักษรพร้อมกัน
เพื่อเลียนแบบการดำเนินการเดียวกันผ่านสคริปต์การทำงานอัตโนมัติ ใช้วิธี Actions Class
1. นำเข้า-แพ็คเกจ
คลาส Action and Actions มีอยู่ในแพ็คเกจ org.openqa.selenium.interactions ของ Web Driver API หากต้องการใช้สิ่งเหล่านี้ คุณต้องนำเข้าแพ็คเกจ:
org.openqa.selenium.interactions.Action;
org.openqa.selenium.interactions.Actions;
2. ยกตัวอย่างคลาส Action
จะช่วยได้ถ้าคุณสร้างวัตถุของคลาส Actions เพื่อเรียกใช้เมธอดของมัน ดังนั้นเราจึงสร้างอินสแตนซ์คลาส Actions และใช้วัตถุ WebDriver เพื่อเริ่มต้นคลาส ไวยากรณ์คือ:
การกระทำของการกระทำ = การกระทำใหม่ (วัตถุ webdriver);
3. สร้าง ลำดับของการกระทำ
ในตัวอย่างนี้ ลำดับของขั้นตอนในการดำเนินการหลายรายการคือ:
- กดปุ่ม Shift
- ส่งข้อความที่ต้องการ
- ปล่อยแป้น Shift
ในการดำเนินการเหล่านี้ คลาส Action มีเมธอดเช่น:
- วิธี keyDown ให้กดแป้น Shift
- วิธี sendKeys เพื่อส่งข้อความที่ต้องการ
- วิธี keyUp จะปล่อยปุ่ม Shift
- keyDown ทำหน้าที่เป็นการกดแป้นตัวปรับแต่งเพื่อโฟกัสที่องค์ประกอบในขณะที่วิธี keyUp จะปล่อยปุ่มตัวแก้ไขที่กด
ปุ่มปรับแต่งจะเปลี่ยนการทำงานของปุ่มอื่นเมื่อกดทั้งสองปุ่มพร้อมกัน เช่น Shift, Alt และ Ctrl
ลำดับของการดำเนินการจะถูกสร้างขึ้น แต่การดำเนินการเหล่านี้ดำเนินการใน webElement ขั้นตอนสำหรับสิ่งนี้คือ:
องค์ประกอบ WebElement = driver.findElement;
actions.keyDown (องค์ประกอบ, คีย์, Shift);
action.sendKeys(“TexttoBeConvertAndSendInUpperCase);
actions.keyUp(คีย์.Shift);
สิ่งสำคัญที่ต้องสังเกตที่นี่คือ หากคุณเลื่อนเมาส์ไปรอบๆ เมธอดของคลาส Action ออบเจ็กต์คลาส Actions จะถูกส่งคืน
4. สร้าง ลำดับการกระทำ
คุณสามารถสร้างลำดับการดำเนินการผ่านเมธอด build() ของคลาส Actions เมธอดนี้จะสร้างชุดการดำเนินการทั้งหมดที่พร้อมดำเนินการ ไวยากรณ์คือ:
แอ็คชันแอ็คชัน = actions.build();
เมธอด build() ส่งคืนอ็อบเจ็กต์ประเภท Action ที่แสดงถึงการกระทำแบบผสมที่สร้างขึ้นจากลำดับของการกระทำหลายรายการที่ถูกเรียกใช้โดยการเรียกใช้เมธอด
5. ดำเนิน การตามลำดับการกระทำ
ขั้นตอนสุดท้ายในการดำเนินการคลาส Action คือการดำเนินการตามลำดับการกระทำผ่านเมธอด perform() ของอินเทอร์เฟซ Action ไวยากรณ์คือ:
action.perform();
ต้องดำเนินการตามขั้นตอนข้างต้นเพื่อใช้ประโยชน์จากวิธีการคลาส Actions ทั้งหมด และดำเนินการต่าง ๆ ของผู้ใช้โดยใช้แป้นพิมพ์และเมาส์
เรียนรู้ หลักสูตรการพัฒนาซอฟต์แวร์ออนไลน์ จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว
อะไรต่อไป?
หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับการพัฒนาซอฟต์แวร์ฟูลสแตก โปรดดูที่ upGrad & IIIT-B's Executive PG Program Full-stack Software Development ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมอย่างเข้มงวดมากกว่า 500 ชั่วโมง โครงการมากกว่า 9 โครงการ และ การมอบหมายงาน สถานะศิษย์เก่า IIIT-B โครงการหลักที่นำไปปฏิบัติจริง และความช่วยเหลือด้านงานกับบริษัทชั้นนำ
คลาสแอคชั่นในซีลีเนียมคืออะไร?
คลาสแอ็คชันคือคลาสที่อธิบายแอ็คชันหรือชุดของแอ็คชันที่คุณดำเนินการได้บนอิลิเมนต์เว็บ เราระบุองค์ประกอบที่เราต้องการดำเนินการโดยตัวระบุตำแหน่ง คลาสแอ็คชันถูกกำหนดโดยการรวมสองอักขระของตัวแก้ไขระดับคลาสสแตติกสาธารณะและส่วนต่อท้ายการดำเนินการ (เช่น แอ็คชัน, KeyAction, PageAction เป็นต้น) ตัวแก้ไขสแตติกสาธารณะช่วยให้เราสามารถแสดงคลาสเป็นคลาสที่สามารถสร้างอินสแตนซ์ได้ คำต่อท้ายการดำเนินการหมายถึงประเภทของการดำเนินการที่จะดำเนินการ คลาสส่วนต่อท้ายการดำเนินการยังเป็นพารามิเตอร์อีกด้วย พารามิเตอร์คือชื่อองค์ประกอบของการดำเนินการ ตัวอย่างเช่น หากเราต้องการดำเนินการกับฟิลด์ข้อความ เราจะใช้ฟิลด์ข้อความพารามิเตอร์
การใช้ซีลีเนียมคืออะไร?
ซีลีเนียมเป็นเครื่องมือทดสอบซอฟต์แวร์แบบพกพาที่ทรงพลังมาก (เครื่องมือทดสอบซอฟต์แวร์ซีลีเนียม) ซึ่งใช้ในการบันทึกและเล่นการกระทำของผู้ใช้บนหน้าเว็บ ใช้เพื่อทดสอบข้อกำหนดการทำงานและไม่ใช่หน้าที่ของเว็บแอปพลิเคชันบนเว็บเบราว์เซอร์ใดๆ มีการใช้งานใน Java และมี API ที่ง่ายมาก รองรับการทดสอบเว็บแอปพลิเคชันในเว็บเบราว์เซอร์หลัก ๆ เช่น Firefox, Chrome, Internet Explorer, Safari เป็นต้น
จะเรียนรู้ซีลีเนียมใน Java ได้อย่างไร
Selenium เป็นเครื่องมือที่ให้คุณเขียนการทดสอบอัตโนมัติในภาษาโปรแกรมต่างๆ การทดสอบเขียนโดยใช้ไดรเวอร์เว็บ คุณสามารถใช้เพื่อทดสอบเว็บแอปพลิเคชันของคุณตามภาษาการเขียนโปรแกรมต่อไปนี้: Java, C#, Python และ PHP ที่จริงแล้ว นักพัฒนาหลายคนรู้สึกว่าไม่จำเป็นต้องเรียนรู้ Selenium Java API มากนัก Selenium WebDriver เป็นตัวเลือกที่เหมาะสมในการค้นหาองค์ประกอบบนหน้าและดำเนินการกับองค์ประกอบเหล่านั้น เป็นไปได้ที่จะทำการทดสอบในภาษาการเขียนโปรแกรมหลายภาษา แต่ถ้าคุณต้องการเขียนการทดสอบใน Java Selenium WebDriver เป็นตัวเลือกที่ดีที่สุด อีกวิธีหนึ่งในการเรียนรู้ Selenium ใน Java คือการใช้ Selenium IDE หรือที่เรียกว่า Selenium RC เบราว์เซอร์รองรับเครื่องมือนี้ไม่ดีเท่าที่เราทราบ รองรับเฉพาะ Firefox และ Chrome แต่ IDE สามารถช่วยให้คุณออกแบบและดำเนินการกรณีทดสอบ Selenium, บันทึกและเล่นกรณีทดสอบได้อย่างรวดเร็ว, สร้างกรณีทดสอบอัตโนมัติ ฯลฯ