ความสามารถที่ต้องการใน Selenium ไดรเวอร์เว็บ
ความสามารถที่ต้องการคืออะไร?
ความสามารถที่ต้องการ เป็นชั้นเรียนใน Selenium ใช้เพื่อตั้งค่าคุณสมบัติของเบราว์เซอร์เพื่อทำการทดสอบข้ามเบราว์เซอร์ของเว็บแอปพลิเคชัน โดยจัดเก็บความสามารถเป็นคู่คีย์-ค่า และความสามารถเหล่านี้ใช้เพื่อตั้งค่าคุณสมบัติของเบราว์เซอร์ เช่น ชื่อเบราว์เซอร์ เวอร์ชันเบราว์เซอร์ เส้นทางของไดรเวอร์เบราว์เซอร์ในระบบ ฯลฯ เพื่อกำหนดพฤติกรรมของเบราว์เซอร์ ณ รันไทม์
- ความสามารถที่ต้องการยังสามารถใช้เพื่อกำหนดค่าอินสแตนซ์ไดรเวอร์ของ Selenium เว็บไดร์เวอร์
- เราสามารถกำหนดค่าอินสแตนซ์ของไดรเวอร์ได้เช่น Firefoxไดร์เวอร์, ChromeDriver, InternetExplorerDriver โดยใช้ความสามารถที่ต้องการ
ทำไมเราถึงต้องการความสามารถที่ต้องการ?
ความสามารถที่ต้องการ มีความจำเป็นเพราะทุกๆ การทดสอบ สถานการณ์สมมติควรได้รับการดำเนินการในสภาพแวดล้อมการทดสอบเฉพาะบางอย่าง สภาพแวดล้อมการทดสอบอาจเป็นเว็บเบราว์เซอร์ โทรศัพท์มือถือ อุปกรณ์, โปรแกรมจำลองมือถือ, โปรแกรมจำลองมือถือ ฯลฯ คลาสความสามารถที่ต้องการช่วยให้เราบอกไดรเวอร์เว็บได้ว่าสภาพแวดล้อมใดที่เราจะใช้ในสคริปต์ทดสอบของเรา
เหตุการณ์ วิธีการ setCapability ของคลาส DesiredCapabilities ซึ่งอธิบายไว้ในส่วนหลังของบทช่วยสอน สามารถนำมาใช้ใน Selenium กริด ใช้เพื่อทำการดำเนินการแบบขนานกับการกำหนดค่าเครื่องต่างๆ
ตัวอย่าง: กริด
ใช้เพื่อตั้งค่าคุณสมบัติของเบราว์เซอร์ (เช่น Chrome, IE) ชื่อแพลตฟอร์ม (เช่น Linux, Windows) ที่ใช้ในขณะดำเนินการกรณีทดสอบ
ในกรณีของระบบมือถืออัตโนมัติ ในขณะที่เราทำการทดสอบบนอุปกรณ์มือถือประเภทต่างๆ แพลตฟอร์มมือถือ (เช่น iOS Android) เวอร์ชันแพลตฟอร์ม (เช่น 3.x,4.x นิ้ว Android) สามารถตั้งค่าได้
ตัวอย่างอีมูเลเตอร์ด้านบนนี้แสดงชุดแพลตฟอร์มซึ่งก็คือ Android และชุดเวอร์ชันแพลตฟอร์มซึ่งก็คือ IceCream Sandwich (4.x)
ความสามารถที่ต้องการมีประโยชน์มากกว่าในกรณีเช่น:
- ในระบบอัตโนมัติของแอปพลิเคชันมือถือ ซึ่งสามารถตั้งค่าคุณสมบัติของเบราว์เซอร์และคุณสมบัติของอุปกรณ์ได้
- In Selenium ตารางเมื่อเราต้องการรันกรณีทดสอบบนเบราว์เซอร์ที่แตกต่างกันโดยใช้ระบบปฏิบัติการและเวอร์ชันที่แตกต่างกัน
ประเภทของวิธีการความสามารถที่ต้องการ
ที่นี่เราจะเห็นวิธีการความสามารถที่ต้องการประเภทต่างๆ และดูวิธีใช้วิธีใดวิธีหนึ่งนี้”วิธี setCapability”
#1) รับชื่อเบราว์เซอร์()
public java.lang.String getBrowserName()
#2) ตั้งค่าชื่อเบราว์เซอร์()
public void setBrowserName(java.lang.String browserName)
#3) รับเวอร์ชัน()
public java.lang.String getVersion()
#4) เวอร์ชันเซ็ต()
public void setVersion(java.lang.String version)
#5) รับแพลตฟอร์ม()
public Platform getPlatform()
#6) ตั้งค่าแพลตฟอร์ม()
public Platform setPlatform()
#7) วิธีการ getCapability()
เมธอด getCapability() ของคลาส DesiredCapabilities สามารถใช้เพื่อรับความสามารถที่ใช้งานอยู่ในระบบในปัจจุบัน
public java.lang.Object getCapability(java.lang.String capabilityName)
#8) วิธีการ setCapability()
เหตุการณ์ วิธีการ setCapability() ของคลาส Desired Capabilities ใช้เพื่อตั้งค่าคุณสมบัติของสภาพแวดล้อมการทดสอบ เช่น ชื่ออุปกรณ์ ชื่อ OS และเวอร์ชัน ชื่อเบราว์เซอร์และเวอร์ชัน พาธสัมบูรณ์ของแอปที่กำลังทดสอบ (ไฟล์ .apk ของ Android แอปที่อยู่ระหว่างการทดสอบ) กิจกรรมของแอป (ใน Android) และ appPackage(in Java).
“วิธี setCapability” in Java มีประกาศดังต่อไปนี้:
setCapability : public void setCapability(java.lang.String capabilityName,boolean value)
setCapability :public void setCapability(java.lang.String capabilityName,java.lang.String value)
setCapability :public void setCapability(java.lang.String capabilityName,Platform value)
setCapability :public void setCapability(java.lang.String key,java.lang.Object value)
ตั้งค่าความสามารถใน Selenium ตัวอย่าง
ให้เราพิจารณาตัวอย่างที่เราต้องการดำเนินการของเรา กรณีทดสอบ บนเบราว์เซอร์ Internet Explorer เพื่อเปิดเว็บไซต์ www.gmail.com โดยใช้ Selenium เว็บไดรเวอร์
ต่อไปนี้เป็นโค้ด
import org.openqa.selenium.WebDriver; import org.openqa.selenium.ie.InternetExplorerDriver; public class IEtestforDesiredCapabilities { public static void main(String[] args) { WebDriver driver = new InternetExplorerDriver(); driver.manage().window().maximize(); driver.get("http://gmail.com"); driver.quit(); } }
ตอนนี้รันโค้ดนี้จาก Eclipse และตรวจสอบคอนโซล
Output:
เมื่อดำเนินการโค้ดด้านบน ระบบจะแสดงข้อผิดพลาดต่อไปนี้ ข้อผิดพลาดนี้เกิดขึ้นเนื่องจากไม่ได้ตั้งค่าเส้นทางไปยังไดรเวอร์เบราว์เซอร์ (IE ในกรณีข้างต้น) รหัส Selenium ระบุตำแหน่งเบราว์เซอร์ไม่ได้
The path to the driver executable must be set by the webdriver.ie.driver system property; formore information, see http://code.google.com/p/selenium/wiki/InternetExplorerDriver. The latest version can be downloaded from http://code.google.com/p/selenium/downloads/list Dec 11, 201212:59:43PM org.openqa.selenium.ie.InternetExplorerDriverServer initializeLib WARNING: This method of starting the IE driver is deprecated and will be removed in selenium 2.26. Please download the IEDriverServer.exe from http://code.google.com/p/selenium/downloads/list and ensure that it is in your PATH.
Solution:
วิธีแก้ไขปัญหาข้างต้นมีระบุไว้ในส่วนคำเตือนของข้อผิดพลาด
- ดาวน์โหลดเซิร์ฟเวอร์แบบสแตนด์อโลนของ Internet ExplorerDriver สำหรับ 32 บิตหรือ 64 บิต
- บันทึกไดรเวอร์ในตำแหน่งที่เหมาะสมในระบบ
- กำหนดเส้นทางสำหรับผู้ขับขี่โดยใช้ System.setProperty วิธี
- ใช้เพื่อตั้งค่าไดรเวอร์ IE ด้วยคุณสมบัติ webdriver ช่วยในการค้นหาไฟล์ปฏิบัติการของไดรเวอร์ที่จัดเก็บไว้ในตำแหน่งระบบ (เช่น:”C:\IEDriverLocation\IEDriver.exe”)
import org.openqa.selenium.WebDriver; import org.openqa.selenium.ie.InternetExplorerDriver; import org.openqa.selenium.remote.DesiredCapabilities; public class IEtestforDesiredCapabilities { public static void main(String[] args) { //it is used to define IE capability DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer(); capabilities.setCapability(CapabilityType.BROWSER_NAME, "IE"); capabilities.setCapability(InternetExplorerDriver. INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true); System.setProperty("webdriver.ie.driver", "C:\\IEDriverServer.exe"); //it is used to initialize the IE driver WebDriver driver = new InternetExplorerDriver(capabilities); driver.manage().window().maximize(); driver.get("http://gmail.com"); driver.quit(); } }
คำอธิบายรหัส:
ในโค้ดด้านบนนี้
- คำชี้แจงการนำเข้าคือการนำเข้าแพ็คเกจที่จำเป็นสำหรับไดรเวอร์เว็บ Selenium แพ็คเกจที่จำเป็นสำหรับไดรเวอร์ Internet Explorer แพ็คเกจสำหรับความสามารถที่ต้องการ
- setCapability ใช้ความสามารถที่หลากหลายเป็นตัวแปรอินพุตซึ่งไดรเวอร์เว็บจะใช้เพื่อเปิดแอปพลิเคชันในสภาพแวดล้อมที่ต้องการ
- setProperty ใช้เพื่อกำหนดเส้นทางที่ไดรเวอร์อยู่ จากนั้น Web Driver จะค้นหาไดรเวอร์ที่ต้องการ
- เว็บไซต์ Gmail จะเปิดด้วยเบราว์เซอร์ Internet Explorer ด้วยวิธี “get”
Output:
กรณีทดสอบบนเบราว์เซอร์ Internet Explorer จะทำงานได้สำเร็จ Selenium เว็บไดรเวอร์
สรุป
คลาส Desired Capabilities จะช่วยกำหนดสภาพแวดล้อมเพื่อกำหนดพฤติกรรมของเบราว์เซอร์/สภาพแวดล้อมที่สามารถดำเนินการทดสอบได้
ช่วยในการเปิดแอปพลิเคชันของเราในสภาพแวดล้อมที่ต้องการโดยมีความสามารถที่เราต้องการใช้