Nội dung bài học
✅ Cách xử lý iFrame trong akaAT Studio
🔆 Update akaAT Studio version 3.7.21
📝 BÀI TẬP: Bài tập viết test cases trên akaAT Studio
✅ iFrame là gì?
iFrame là một thẻ HTML
có tác dụng hiển thị một trang web khác từ trang web hiện tại. iFrame là viết tắt của cụm từ Inline Frame và tạm dịch là khung nội tuyến.
Cú pháp của thẻ iframe có dạng: <iframe src="https://www.facebook.com"></iframe>
Ví dụ thực tế về iFrame:
Nội dung quảng cáo trong trang https://vietnamnews.vn/
Nội dung quảng cáo trong trang https://vietnamnet.vn/
Phần Chat Messenger của Facebook trong trang Contact của Anh Tester Blog https://anhtester.com/contact
Yeah thì đa phần các bạn sẽ thấy quảng cáo trên các trang web sẽ được nhúng vào dạng thẻ iframe. Vì đó là nội dung bên ngoài đẩy vào.
Nó sẽ chứa một cây thư mục HTML y như website hiện hành. Chính vì thế mà driver hiện tại nó đang nằm ở website hiện hành thì chúng ta không thể thao tác vào phần nội dung của thẻ iframe được.
Nó thường báo lỗi là không tìm thấy element.
✅ Cách xử lý iFrame trong akaAT Studio
akaAT Studio hỗ trợ cho chúng ta các keyword chuyên dụng để xử lý thẻ iframe này. Cụ thể là các keyword chính sau:
- Switch To Frame: dùng để chuyển hướng đến Frame thông qua đối tượng Object chính là thẻ iframe đó.
- Switch To Frame By Name Or Id: dùng để chuyển hướng đến Frame thông qua name hoặc id của chính thẻ iframe.
- Switch To Default Content: trở về lớp window mặc định ban đầu (thoát khỏi thẻ iframe)
Ví dụ chúng ta handle cái quảng cáo trong trang https://vietnamnews.vn/ thử nhé.
Bước 1: bắt element của quảng cáo trong trang nằm trong phần thẻ iframe
Chúng ta có Test Case như sau:
Nó báo lỗi ngay dòng click element ngay
Bước 2: chúng ta dùng keyword Switch To Frame By Name Or Id để handle iframe
Chúng ta sửa script lại thêm keyword Switch To Frame By Name Or Id vào và điền ID hoặc Name của thẻ iframe dô nhen
Kết quả như nào đây...
Trường hợp bạn dùng keyword Switch To Frame thì chúng ta cần bắt object thẻ iframe đó.
Cụ thể thì theo ví dụ Xpath thẻ iframe là
//iframe[@id='aswift_3']
. An đặt tên là IFRAME_TAG theo như trong test case mẫu nhé.Yeah ok hen. Nó chỉ vậy thôi. Các bạn tìm các trường hợp khác thử đi nào. Và áp dụng vào dự án của mình luôn.
Anh Tester
facebook.com/anhtester
Đường dẫu khó chân vẫn cần bước đi
Đời dẫu khổ tâm vẫn cần nghĩ thấu