Handle Chatbox Messenger Facebook using Selenium

Anh Tester chia sẻ cho các bạn cách xử lý Chatbox Messenger của Facebook với Selenium

Anh Tester sử dụng code trên Selenium Java nhé. Các bạn dùng ngôn ngữ khác chỉnh lại cho phù hợp nhen.

@Test
public void handleChatboxMessenger() {
    driver.navigate().to("https://anhtester.com/contact");
    sleep(10);
    System.out.println("iframe total: " + driver.findElements(By.tagName("iframe")).size());
    //----Switch to content of Messenger--------
    driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@data-testid='dialog_iframe']")));
    //Get title
    System.out.println(driver.findElement(By.xpath("//strong")).getText());
    //Get description
    System.out.println(driver.findElement(By.xpath("(((//strong/parent::div)/parent::div)/following-sibling::div)[2]")).getText());

    //----Switch to icon of Messenger---------
    //1. Switch to Parent WindowHandle
    driver.switchTo().parentFrame();
    //2. Switch to iframe icon of Messenger
    driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@data-testid='bubble_iframe']")));
    driver.findElement(By.tagName("svg")).click(); //Nhấn icon để ẩn messenger chat đi
    sleep(2);
}


- Bước 1: Đếm số iframe xem website mình có tổng số mấy cái để có gì chúng ta lấy theo vị trí của iframe khi nó không có thuộc tính nào cả (đường cùng)

driver.findElements(By.tagName("iframe")).size()



- Bước 2: Xác định cái Dialog bên trên của Messenger:

Handle Chatbox Messenger Facebook using Selenium | Anh Tester

//----Switch to content of Messenger--------
driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@data-testid='dialog_iframe']")));

Lấy text của titledescription

System.out.println(driver.findElement(By.xpath("//strong")).getText());

System.out.println(driver.findElement(By.xpath("(((//strong/parent::div)/parent::div)/following-sibling::div)[2]")).getText());



- Bước 3: Xác định cái Icon bên dưới của Messenger:

Handle Chatbox Messenger Facebook using Selenium | Anh Tester

Chúng ta phải switch về cái frame chính default vì nó đang trỏ đến frame của dialog bên trên.

Sau đó mới switch đến icon của messenger sau.

//1. Switch to Parent WindowHandle
driver.switchTo().parentFrame();

//2. Switch to iframe icon of Messenger
driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@data-testid='bubble_iframe']")));​

Nhấn icon với thẻ svg cho dễ

//Nhấn icon để ẩn messenger chat đi
driver.findElement(By.tagName("svg")).click();


Handle Chatbox Messenger Facebook using Selenium | Anh Tester


Source code on GitHub:
https://github.com/anhtester/NewFeatureSelenium4/blob/main/src/test/java/HandleChatboxMessenger.java
  • Anh Tester

    Đườ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