iFrame Selenium - Xử lý iFrame với selenium

Chào các bạn! Bao lâu rồi chúng ta không gặp nhau?
Vâng, cũng khá lâu rồi mình mới có thể viết 1 bài. Nhân cái tiện là có 1 người chị nhờ mình xem giúp cái iFrame nên mình note lại bài này để sau này có thể sẽ cần tới.
Bài viết này chúng ta sẽ đi qua các vấn đề sau:

  1. iFrame là gì, và tại sao người ta dùng nó?
  2. cách chuyển từ main page qua iFrame và ngược lại

1. Trước tiên chúng ta sẽ tìm hiểu qua 1 chút về iFrame, và tại sao người ta dùng nó.
Chúng ta hiểu đơn giản là iFrame giống như là 1 module trong phát triển phần mềm vậy. Một dự án gồm nhiều người code, mỗi người code 1 phần rồi ghép lại. Iframe để hiển thị 1 web trong 1 trang web khác.
2. Cách nhận biết nó là 1 iframe hay kiểu popup
Chúng ta sẽ sử dụng Firefox hay Chrome để kiểm tra xem nó có phải là iFrame không nhé


Nếu khi chuột phải vào mà có "This Frame" thì chính xác rồi đó.
Một iFrame thường có dạng như sau:

3. Cách Xử lý iFrame với selenium
Để xử lý iframe thì ta sử dụng dòng code sau:
driver.switchTo.frame(...)


khi dùng lệnh driver.switchTo.frame(String) thì ta có thể dùng ID hay Name của iframe đó
ví dụ ở ảnh trên, ta có thể dùng
driver.switchTo().frame("IF1"); 
hay
driver.switchTo().frame("iframe1");

Ngoài ra chúng ta cũng có thể dùng cách truyền vào 1 WebElement như sau:

WebElement iframeElement = driver.findElement(By.id("IF1"));
driver.switchTo().frame(iframeElement); 

Sau khi đã thao tác trên iFrame xong, chúng ta cần chuyển về main page bằng lệnh sau:
driver.switchTo().defaultContent(); 

Link để các bạn thực hành: http://toolsqa.com/iframe-practice-page/

Qua bài viết này, chúng ta đã biết cách xử lý iframe với selenium ra sao. Hẹn gặp các bạn ở các bài viết sau!

1 comment:

  1. Harrah's Resort And Casino - JTM Hub
    Find out why 동해 출장안마 Harrah's Resort And Casino is the choice for 청주 출장안마 travelers looking for 속초 출장샵 the ultimate staycation experience. From fine dining and 영주 출장안마 luxurious rooms 안동 출장샵

    ReplyDelete