Kho lưu trữ đối tượng là gì?
Kho lưu trữ đối tượng là vị trí lưu trữ chung cho tất cả các đối tượng. Trong ngữ cảnh Selenium WebDriver, các đối tượng thường sẽ là bộ định vị được sử dụng để xác định duy nhất các phần tử web.
Ưu điểm chính của việc sử dụng kho lưu trữ đối tượng là tách biệt các đối tượng khỏi các trường hợp kiểm thử. Nếu giá trị bộ định vị của một webelement thay đổi, chỉ kho lưu trữ đối tượng cần được thay đổi chứ không phải thực hiện thay đổi trong tất cả các trường hợp thử nghiệm mà bộ định vị đã được sử dụng. Việc duy trì một kho lưu trữ đối tượng làm tăng tính mô-đun của việc triển khai khuôn khổ.
Trong hướng dẫn này, bạn sẽ học-
- Kho lưu trữ đối tượng là gì?
- Các loại Kho lưu trữ Đối tượng trong Trình điều khiển Web Selenium
- Kho lưu trữ Đối tượng Trình điều khiển Web Selenium bằng cách sử dụng tệp Thuộc tính
- Kho lưu trữ đối tượng Selenium WebDriver Sử dụng tệp XML
Các loại Kho lưu trữ Đối tượng trong Trình điều khiển Web Selenium
Selenium WebDriver không cung cấp kho lưu trữ đối tượng tích hợp theo mặc định. Tuy nhiên, kho lưu trữ đối tượng có thể được xây dựng bằng cách sử dụng phương pháp cặp khóa-giá trị trong đó khóa đề cập đến tên được đặt cho đối tượng và giá trị đề cập đến các thuộc tính được sử dụng để xác định duy nhất một đối tượng trong trang web.
Sau đây là các loại kho lưu trữ đối tượng có thể được tạo trong Selenium WebDriver.
- Kho lưu trữ đối tượng sử dụng tệp Thuộc tính
- Kho lưu trữ đối tượng sử dụng tệp XML
Kho lưu trữ Đối tượng Trình điều khiển Web Selenium bằng cách sử dụng tệp Thuộc tính
Theo cách tiếp cận này, tệp thuộc tính là tệp văn bản trong đó dữ liệu được lưu trữ dưới dạng các cặp khóa-giá trị. Hướng dẫn dưới đây sẽ giải quyết các chủ đề sau.
- Tạo tệp thuộc tính trong nhật thực
- Lưu trữ dữ liệu vào tệp thuộc tính
- Đọc dữ liệu từ tệp thuộc tính
- Sử dụng tệp thuộc tính trong các tập lệnh thử nghiệm
Bước 1) Tạo tệp thuộc tính trong nhật thực
- Để bắt đầu, cấu trúc dự án java dưới đây cần được tạo trong eclipse. Tên dự án và tên gói có thể là bất kỳ tên hợp lệ nào.
- Nhấp chuột phải vào thư mục dự án chính và chọn Mới-> Khác
- Trong cửa sổ tiếp theo, chọn Chung -> Tệp và nhấp vào nút 'Tiếp theo'
- Cung cấp tên tệp hợp lệ với phần mở rộng '.properties' trên cửa sổ tài nguyên tệp mới và nhấp vào nút 'Hoàn tất'
- Tệp có tên 'application.properties' phải được hiển thị trên Cấu trúc dự án
Bước 2) Lưu trữ dữ liệu vào tệp thuộc tính
- Dữ liệu được lưu trữ trong tệp thuộc tính dưới dạng các cặp khóa-giá trị, với khóa là duy nhất trên toàn tệp.
- Chúng tôi sẽ cố gắng sử dụng tệp thuộc tính để xác định các phần tử web bằng cách sử dụng các giá trị định vị.
- Mở tệp application.properties trong Eclipse và lưu trữ dữ liệu sau
MobileTesting = // a [text () = 'KIỂM TRA THIẾT BỊ DI ĐỘNG']EmailTextBox = philadelphia-field-emailSignUpButton = philadelphia-field-submit
4) Đối với hướng dẫn này, trang web demo sau đang được sử dụng: http://demo.guru99.com/test/guru99home/. Đây là kịch bản thử nghiệm:
- Nhấp vào liên kết Kiểm tra di động bằng XPATH
- Điều hướng trở lại
- Nhập dữ liệu vào hộp văn bản email bằng ID
- Nhấp vào nút Đăng ký bằng ID
Bước 3) Đọc dữ liệu từ tệp thuộc tính
- Việc đọc dữ liệu từ tệp thuộc tính có thể được thực hiện bằng cách sử dụng lớp Thuộc tính tích hợp được cung cấp trong gói java.util.
- Ban đầu, một đối tượng của lớp Thuộc tính cần được tạo như bên dưới
Thuộc tính obj = new Properties ();
- Chúng ta cần tạo một đối tượng của lớp FileInputStream với đường dẫn đến tệp thuộc tính
FileInputStream objfile = new FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");
- Việc đọc dữ liệu từ tệp thuộc tính có thể được thực hiện bằng cách sử dụng phương thức tải được cung cấp bởi lớp Thuộc tính trong java. Đoạn mã dưới đây minh họa việc sử dụng phương pháp tải.
Thuộc tính obj = new Properties ();FileInputStream objfile = new FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");obj.load (objfile);String mobileTesting = obj.getProperty ("MobileTesting");
Chuỗi 'mobileTesting' sẽ chứa XPATH để xác định liên kết Mobile Testing trong trang web.
Bước 4) Sử dụng tệp thuộc tính trong các tập lệnh thử nghiệm
Tệp thuộc tính có thể được sử dụng trong các tập lệnh thử nghiệm bằng cách đọc dữ liệu từ tệp thuộc tính và chuyển dữ liệu dưới dạng tham số cho phương thức findElement. Đoạn mã dưới đây minh họa việc sử dụng dữ liệu được đọc từ tệp thuộc tính trong các tập lệnh thử nghiệm.
driver.findElement (By.xpath (obj.getProperty ("MobileTesting"))). click ();driver.findElement (By.id (obj.getProperty ("EmailTextBox"))). sendKeys (" Địa chỉ email này đang được bảo vệ khỏi spam bots. Bạn cần bật Javascript để xem nó.");driver.findElement (By.id (obj.getProperty ("SignUpButton"))). click ();
Dưới đây là mã hoàn chỉnh được sử dụng cho kịch bản thử nghiệm trên.
gói com.objectrepository.demo;nhập java.io.FileInputStream;nhập java.io.FileNotFoundException;nhập java.io.IOException;nhập java.util.Properties;nhập org.openqa.selenium.By;nhập org.openqa.selenium.WebDriver;nhập org.openqa.selenium.chrome.ChromeDriver;DemoOR lớp công khai {public static void main (String [] args) ném IOException {// Tạo phiên bản WebDriverTrình điều khiển WebDriver;System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");driver = new ChromeDriver ();driver.get ("http://demo.guru99.com/test/guru99home/");driver.manage (). window (). Maxim ();// Tải tệp thuộc tínhThuộc tính obj = new Properties ();FileInputStream objfile = new FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");obj.load (objfile);// Nagigate để liên kết Kiểm tra di động và Quay lạidriver.findElement (By.xpath (obj.getProperty ("MobileTesting"))). click ();driver.navigate (). back ();// Nhập dữ liệu vào biểu mẫudriver.findElement (By.id (obj.getProperty ("EmailTextBox"))). sendKeys (" Địa chỉ email này đang được bảo vệ khỏi spam bots. Bạn cần bật Javascript để xem nó.");driver.findElement (By.id (obj.getProperty ("SignUpButton"))). click ();}}
Kho lưu trữ đối tượng Selenium WebDriver Sử dụng tệp XML
XML là viết tắt của Ngôn ngữ đánh dấu có thể mở rộng. Tệp XML sử dụng Mô hình Đối tượng Tài liệu (DOM) làm cấu trúc cơ bản. Định dạng Tệp XML sẽ sao chép định dạng HTML mà trang web được tạo. Dưới đây là danh sách các chủ đề sẽ được đề cập.
- Tạo tệp XML trong nhật thực
- Lưu trữ dữ liệu vào tệp XML
- Đọc dữ liệu từ tệp XML
- Sử dụng tệp XML trong các tập lệnh thử nghiệm
Bước 1) Tạo tệp XML trong eclipse
- Cấu trúc dự án java dưới đây cần được tạo trong Eclipse.
- Nhấp chuột phải vào thư mục dự án, chọn Mới -> Khác
- Chọn Tệp XML trong thư mục XML và nhấp vào nút 'Tiếp theo'
- Nhập tên Tệp XML hợp lệ và nhấp vào nút 'Hoàn tất'
- Một tệp XML sẽ được thêm vào thư mục dự án như hình dưới đây
Bước 2) Lưu trữ dữ liệu vào tệp XML
Dữ liệu có thể được lưu trữ trong tệp XML dưới dạng Mô hình Đối tượng Tài liệu (DOM). Để đơn giản hơn, chúng ta có thể sử dụng kịch bản thử nghiệm dưới đây làm ví dụ.
- Nhấp vào liên kết Kiểm tra di động bằng XPATH
- Điều hướng Quay lại Trang chủ
- Nhập dữ liệu vào hộp văn bản email bằng ID
- Nhấp vào nút Đăng ký bằng ID
Dưới đây là định dạng của Tệp XML sẽ được sử dụng.
Lưu trữ mã XML ở trên trong property.xml
Trong tab thiết kế, bạn sẽ thấy
Bước 3) Đọc dữ liệu từ tệp XML
1. Việc đọc dữ liệu từ tệp XML có thể được thực hiện bằng cách sử dụng lớp 'dom4j' tích hợp sẵn trong java. Xin lưu ý rằng bạn cần thêm các tệp JAR bên dưới vào đường dẫn xây dựng của dự án trước khi tiếp tục với mã.
- jaxen.jar
- dom4j-1.6.jar
2. Dưới đây là đoạn mã để đọc dữ liệu từ tệp XML.
File inputFile = new File (System.getProperty ("user.dir") + "\\ property.xml");SAXReader saxReader = new SAXReader ();Tài liệu tài liệu = saxReader.read (inputFile);String mobileTesting = document.selectSingleNode ("// menu / mobiletesting"). GetText ();String emailTextBox = document.selectSingleNode ("// menu / email"). GetText ();String signUpButton = document.selectSingleNode ("// menu / signup"). GetText ();
3. Ban đầu, chúng ta cần tạo một đối tượng File và chuyển nó làm tham số cho phương thức 'read' của lớp SAXReader. Khi dữ liệu tệp XML được đọc thành công, chúng tôi có thể truy cập các nút riêng lẻ của tài liệu XML bằng phương pháp 'selectSingleNode'.
Bước 4) Sử dụng tệp XML trong các tập lệnh thử nghiệm
Tệp XML có thể được sử dụng trong các tập lệnh thử nghiệm bằng cách đọc dữ liệu từ tệp XML và chuyển dữ liệu dưới dạng tham số cho phương thức findElement. Đoạn mã dưới đây minh họa việc sử dụng dữ liệu được đọc từ tệp XML trong các tập lệnh thử nghiệm.
driver.findElement (By.xpath (mobileTesting)). click ();driver.findElement (By.id (emailTextBox)). sendKeys (" Địa chỉ email này đang được bảo vệ khỏi spam bots. Bạn cần bật Javascript để xem nó.");driver.findElement (By.id (signUpButton)). click ();
Đoạn mã dưới đây minh họa việc sử dụng tệp XML trong selenium WebDriver
gói com.objectrepository.demo;nhập java.io. *;nhập java.util. *;nhập org.dom4j. *;nhập org.dom4j.io.SAXReader;nhập org.openqa.selenium.By;nhập org.openqa.selenium.WebDriver;nhập org.openqa.selenium.chrome.ChromeDriver;lớp công khai DemoORXML {public static void main (String [] args) ném DocumentException {// Tạo phiên bản WebDriverTrình điều khiển WebDriver;System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");driver = new ChromeDriver ();driver.get ("http://demo.guru99.com/test/guru99home/");driver.manage (). window (). Maxim ();// Đọc tệp XMLFile inputFile = new File (System.getProperty ("user.dir") + "\\ property.xml");SAXReader saxReader = new SAXReader ();Tài liệu tài liệu = saxReader.read (inputFile);String mobileTesting = document.selectSingleNode ("// menu / mobiletesting"). GetText ();String emailTextBox = document.selectSingleNode ("// menu / email"). GetText ();String signUpButton = document.selectSingleNode ("// menu / signup"). GetText ();// Điều hướng đến Thử nghiệm trên thiết bị di động và quay lạidriver.findElement (By.xpath (mobileTesting)). click ();driver.navigate (). back ();// Nhập dữ liệu biểu mẫudriver.findElement (By.id (emailTextBox)). sendKeys (" Địa chỉ email này đang được bảo vệ khỏi spam bots. Bạn cần bật Javascript để xem nó.");driver.findElement (By.id (signUpButton)). click ();}}
Tải xuống Dự án WebDriver Eclipse
Tóm lược:
- Kho lưu trữ đối tượng là vị trí lưu trữ chung cho tất cả các đối tượng
- Selenium WebDriver không cung cấp kho lưu trữ đối tượng tích hợp theo mặc định
- Bạn có thể tạo 2 Loại Kho lưu trữ Đối tượng trong Selenium
- Kho lưu trữ đối tượng sử dụng tệp Thuộc tính
- Kho lưu trữ đối tượng sử dụng tệp XML
- Tệp thuộc tính là tệp văn bản trong đó dữ liệu được lưu trữ dưới dạng các cặp khóa-giá trị
- Định dạng Tệp XML sẽ sao chép định dạng HTML mà trang web được tạo.