@Test
public void testCloseAdsGoogle() {
try {
driver.get("https://demo.guru99.com/V4/");
Thread.sleep(2000);
driver.findElement(By.name("uid")).sendKeys("mngr484782");
driver.findElement(By.name("password")).sendKeys("nEzarEs");
driver.findElement(By.name("btnLogin")).click();
Thread.sleep(2000);
driver.findElement(By.linkText("New Customer")).click();
Thread.sleep(2000);
//Get element in frame by ID
WebElement frame1 = driver.findElement(By.id("google_ads_iframe_/24132379/INTERSTITIAL_DemoGuru99_0"));
//Switch to frame with element
driver.switchTo().frame(frame1);
//Check button X or Close displays
List < WebElement > checkButtonX = driver.findElements(By.xpath("//div[@id='dismiss-button']"));
System.out.println("checkButtonX: " + checkButtonX.size());
if (checkButtonX.size() > 0) {
driver.findElement(By.xpath("//div[@id='dismiss-button']")).click();
} else {
WebElement frame2 = driver.findElement(By.id("ad_iframe"));
driver.switchTo().frame(frame2);
Thread.sleep(1000);
List < WebElement > checkButtonClose = driver.findElements(By.xpath("//div[@id='dismiss-button']//span[normalize-space()='Close']"));
System.out.println("checkButtonClose: " + checkButtonClose.size());
if (checkButtonClose.size() > 0) {
driver.findElement(By.xpath("//div[@id='dismiss-button']//span[normalize-space()='Close']")).click();
} else {
driver.findElement(By.xpath("//div[@id='dismiss-button']")).click();
}
}
driver.switchTo().defaultContent();
Thread.sleep(2000);
} catch (Exception e) {
e.printStackTrace();
}
}
- Bước 1: kiểm tra lấy cái ID của thẻ iframe chứa Ads. Mỗi một Ads trên website đều có ID và ID này không đổi khi chạy lại nên các bạn an tâm.
- Bước 2: Chuyển hướng vào cái iframe đó
//Get element in frame by ID
WebElement frame1 = driver.findElement(By.id("google_ads_iframe_/24132379/INTERSTITIAL_DemoGuru99_0"));
//Switch to frame with element
driver.switchTo().frame(frame1);
- Bước 3: Bắt hết các element cần thiết. Tại đây toàn ID dễ lấy vô cùng nên chắc An không cần chỉ rồi 😄
- Bước 4: Muốn tắt cái Ads đó thì bạn nhấn button X hoặc button Close.
Yeah trên hình là chỉ có button X. Nhưng khi các bạn vào lại lúc khác thì nó lại hiện theo kiểu button Close chính vì thế mình phải đặt điều kiện để kiểm tra từng trường hợp rồi click button cho phù hợp kẻo lỗi do không tìm thấy element.
Code bên trên có note nên các bạn nhìn chắc hiểu rồi 😁
Source code on GitHub:
https://github.com/anhtester/NewFeatureSelenium4/blob/main/src/test/java/CloseAdsGoogle.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