Khả năng mong muốn trong Selenium webdriver

⚡ Tóm tắt thông minh

Khả năng mong muốn là Selenium Lớp này lưu trữ các cài đặt trình duyệt, nền tảng và thiết bị dưới dạng các cặp khóa-giá trị, cho phép một bộ kiểm thử duy nhất nhắm mục tiêu đến nhiều môi trường khác nhau. Selenium Lưới điện, lưới điện toán đám mây và tự động hóa di động.

  • 🔘 Định nghĩa: Các cặp khóa-giá trị đặt tên cho trình duyệt, phiên bản, nền tảng và đường dẫn trình điều khiển.
  • ☑️ Mục đích: Một bộ phần mềm duy nhất hoạt động trên nhiều trình duyệt, hệ điều hành và thiết bị di động.
  • ✅ Phương pháp: Các phương thức setCapability(), getCapability(), setBrowserName(), setVersion() và setPlatform() mô tả môi trường.
  • 🧪 Ví dụ: Hướng dẫn sử dụng Internet Explorer này mô tả lỗi đường dẫn trình điều khiển và cách khắc phục.
  • 🛠️ Tương đương hiện đại: Selenium Mục 4 có cùng các thiết lập trong các lớp Tùy chọn của trình duyệt.

Khả năng mong muốn trong Selenium webdriver

Khả năng mong muốn là gì?

Khả năng mong muốn là một lớp trong Selenium được sử dụng để đặt thuộc tính của trình duyệt để thực hiện kiểm tra trình duyệt chéo của các ứng dụng web. Nó lưu trữ các khả năng dưới dạng cặp khóa-giá trị và các khả năng này được sử dụng để đặt các thuộc tính của trình duyệt như tên trình duyệt, phiên bản trình duyệt, đường dẫn trình điều khiển trình duyệt trong hệ thống, v.v. nhằm xác định hành vi của trình duyệt trong thời gian chạy.

  • Khả năng mong muốn cũng có thể được sử dụng để cấu hình phiên bản trình điều khiển của Selenium WebDriver.
  • Chúng ta có thể cấu hình phiên bản trình điều khiển như FirefoxDriver, ChromeDriver, InternetExplorerDriver bằng cách sử dụng các chức năng mong muốn.

Ghi chú phiên bản: Selenium 4 Thay thế DesiredCapabilities bằng các lớp Tùy chọn trình duyệt — ChromeOptions, FirefoxOptions, EdgeOptions, InternetExplorerOptions. Các ví dụ dưới đây giữ nguyên cú pháp ban đầu.

Tại sao chúng ta cần những Năng lực mong muốn?

Các năng lực mong muốn là cần thiết vì mọi Kiểm tra kịch bản nên được thực hiện trên một số môi trường thử nghiệm cụ thể. Môi trường thử nghiệm có thể là trình duyệt web, Số Điện Thoại Thiết bị, trình giả lập di động, mô phỏng di động, v.v. Lớp Desired Capabilities giúp chúng ta cho WebDriver biết môi trường nào chúng ta sẽ sử dụng trong kịch bản kiểm thử của mình.

Phương thức setCapability của lớp DesiredCapabilities, được giải thích ở phần sau của trang này, có thể được sử dụng trong Selenium Lưới. Nó được sử dụng để thực hiện một thao tác. thực hiện song song trên các cấu hình máy khác nhau.

Ví dụ: Lưới (như hình bên dưới).

Selenium Cấu hình lưới được thúc đẩy bởi các khả năng mong muốn.

Nó được sử dụng để đặt thuộc tính trình duyệt (Ví dụ: Chrome, IE), Tên nền tảng (Ví dụ: Linux, Windows) được sử dụng trong quá trình thực thi Trường hợp thử nghiệm.

Trong trường hợp tự động hóa thiết bị di động, khi chúng tôi thực hiện thử nghiệm trên nhiều loại thiết bị di động khác nhau, Nền tảng di động (ví dụ: iOS, Android) Phiên bản nền tảng (Ví dụ: 3.x,4.x in Android) có thể thiết lập.

Ví dụ trình giả lập bên dưới hiển thị nền tảng được thiết lập là Android và phiên bản nền tảng được thiết lập là IceCream Sandwich (4.x).

Các khả năng giả lập thiết bị di động được thiết lập thành Android nền tảng và phiên bản 4.x

Khả năng mong muốn sẽ hữu ích hơn trong các trường hợp như:

  • Trong tự động hóa ứng dụng di động, nơi có thể đặt thuộc tính trình duyệt và thuộc tính thiết bị.
  • In Selenium Grid hữu ích khi chúng ta muốn chạy các trường hợp kiểm thử trên các trình duyệt khác nhau với các hệ điều hành và phiên bản khác nhau.

Các loại phương pháp khả năng mong muốn

Ở đây, chúng ta sẽ xem xét các phương thức Desired Capabilities khác nhau và cách sử dụng một trong số đó, phương thức setCapability().

#1) getBrowserName()

public java.lang.String getBrowserName()

#2) setBrowserName()

public void setBrowserName(java.lang.String browserName)

#3) getVersion()

public java.lang.String getVersion()

#4) setVersion()

public void setVersion(java.lang.String version)

#5) getPlatform()

public Platform getPlatform()

#6) setPlatform()

public Platform setPlatform()

#7) Phương thức getCapability()

Phương thức getCapability() của lớp DesiredCapabilities có thể được sử dụng để lấy khả năng hiện đang được sử dụng trong hệ thống.

public java.lang.Object getCapability(java.lang.String capabilityName)

#8) Phương thức setCapability()

Phương thức setCapability() của lớp Desired Capabilities được sử dụng để thiết lập các thuộc tính của môi trường kiểm thử như tên thiết bị, tên và phiên bản hệ điều hành, tên và phiên bản trình duyệt, đường dẫn tuyệt đối của ứng dụng cần kiểm thử (tệp .apk của ứng dụng). Android ứng dụng đang được thử nghiệm), Hoạt động của ứng dụng (trong Android) và appPackage (trong Java).

“phương thức setCapability” trong Java có các khai báo dưới đây:

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)

Đặt khả năng trong Selenium Ví dụ

Hãy xem xét một ví dụ, trong đó chúng ta muốn chạy trường hợp kiểm thử trên trình duyệt Internet Explorer để mở trang web www.gmail.com. Selenium WebDriver.

Sau đây là mã.

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();
 }
  
}

Bây giờ hãy chạy mã này từ Eclipse và kiểm tra bảng điều khiển.

Đầu ra:

Khi đoạn mã trên được thực thi, nó sẽ báo lỗi sau. Lỗi xảy ra vì đường dẫn đến trình điều khiển trình duyệt (IE trong trường hợp trên) chưa được thiết lập. Trình duyệt không thể được định vị bởi... Selenium Mã.

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.

Giải pháp:

Giải pháp cho vấn đề trên được đưa ra trong phần cảnh báo của chính lỗi đó.

  1. Tải xuống máy chủ độc lập Internet ExplorerDriver cho 32bit hoặc 64bit.
  2. Lưu driver vào vị trí thích hợp trong hệ thống.
  3. Thiết lập đường dẫn cho trình điều khiển bằng phương thức System.setProperty. Phương thức này được sử dụng để thiết lập trình điều khiển IE với thuộc tính webdriver. Nó giúp định vị tệp thực thi của trình điều khiển được lưu trữ trong thư mục hệ thống. (Ví dụ: “C:\IEDriverLocation\IEDriver.exe”)

Ghi chú phiên bản: Selenium Phiên bản 4.6 trở lên sẽ tự động giải quyết vấn đề trình điều khiển thông qua... Selenium Quản trị viên, vì vậy System.setProperty là tùy chọn. Đoạn mã cũ bên dưới không thay đổi.

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();
 }
  
}

Code Giải thích:

Trong đoạn mã trên,

  • Các câu lệnh nhập khẩu sẽ nhập các gói cần thiết cho Selenium WebDriver, các gói cần thiết cho trình điều khiển Internet Explorer và các gói cho các chức năng mong muốn.
  • setCapability lấy các khả năng khác nhau làm biến đầu vào, sau đó được trình điều khiển web sử dụng để khởi chạy ứng dụng trong môi trường mong muốn.
  • Phương thức setProperty được sử dụng để thiết lập đường dẫn nơi đặt trình điều khiển. Sau đó, WebDriver sẽ tìm kiếm trình điều khiển cần thiết.
  • Gmail trang web được mở trong trình duyệt Internet Explorer bằng cách sử dụng phương thức “get”.

Đầu ra:

Trường hợp kiểm thử trên trình duyệt Internet Explorer sẽ chạy thành công bằng cách sử dụng Selenium WebDriver.

Câu Hỏi Thường Gặp

Nó vẫn được giữ lại để đảm bảo khả năng tương thích ngược nhưng về cơ bản đã trở thành tính năng cũ. Selenium 4. Định tuyến các phiên thông qua các đối tượng Tùy chọn của trình duyệt tuân thủ W3C, vì vậy các bộ ứng dụng mới nên ưu tiên sử dụng Tùy chọn.

Tùy chọn Chrome, FirefoxOptions, EdgeOptions, SafariOptions và InternetExplorerOptions. Mỗi đối tượng được truyền trực tiếp vào hàm tạo trình điều khiển tương ứng hoặc vào RemoteWebDriver.

Chỉ có browserName, browserVersion, platformName, acceptInsecureCerts, pageLoadStrategy, proxy, timeouts và unhandledPromptBehavior là các tham số chuẩn. Bất kỳ tham số nào khác đều cần tiền tố của nhà cung cấp, ví dụ như goog:chromeOptions.

Appium Yêu cầu platformName, automationName, deviceName và app hoặc appPackage cộng với appActivity, tất cả đều được viết với tiền tố appium:.

Không. Từ Selenium 4.6, Selenium Quản Lý Tự động tải xuống trình điều khiển phù hợp. Chỉ thiết lập tùy chọn này khi ghim một bản dựng trình điều khiển cụ thể.

Các nhà cung cấp dịch vụ đám mây đọc cùng một cặp khóa-giá trị để phân bổ trình duyệt, hệ điều hành và thiết bị, cùng với các thông tin bổ sung có tiền tố của nhà cung cấp như tên bản dựng.

Các mô hình AI khai thác dữ liệu phân tích sản xuất và lịch sử lỗi để xếp hạng các tổ hợp trình duyệt, phiên bản và thiết bị nào xứng đáng được hỗ trợ, giúp đơn giản hóa một ma trận phức tạp khó quản lý.

Phi công phụ Công cụ này soạn thảo các khối khả năng một cách nhanh chóng, nhưng thường đề xuất cú pháp DesiredCapabilities lỗi thời được học từ mã cũ, vì vậy hãy xem xét kỹ từng dòng được tạo ra.

Tóm tắt bài viết này với: