I am trying to ‘accept the cookies’ on the homepage, but my code doesn’t work. I tried to get the new window handles and then identify the subsequent Xpath for the frame and Accept button but it never work.
package seleniumTestPack; import java.util.concurrent.TimeUnit; import org.openqa.selenium.*; import org.openqa.selenium.chrome.*; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; import org.openqa.selenium.Cookie; @SuppressWarnings("unused") public class firstSelTest { public static void main(String[] args) throws InterruptedException { ChromeOptions options = new ChromeOptions(); //Add chrome switch to disable notification - "**--disable-notifications**" options.addArguments("--disable-notifications"); System.setProperty("webdriver.chrome.driver", "C:\Users\vmyna\Downloads\chromedriver_win32\chromedriver.exe"); WebDriver driver = new ChromeDriver(options); driver.get("https://www.zyyah.com/homeowner-lifestyle-perfected-home-value-protected/"); driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); driver.switchTo().frame(0); driver.getWindowHandles(); driver.switchTo().alert().accept(); By cookies_accept = By.xpath("//*[@id="cookie-law-info-bar"]"); By cookies_gotIt = By.xpath("//*[@id="cookie_action_close_header"]"); WebDriverWait wait = new WebDriverWait(driver, 10); wait.until(ExpectedConditions.elementToBeClickable(cookies_accept)).click(); wait.until(ExpectedConditions.invisibilityOfElementLocated(cookies_accept)); wait.until(ExpectedConditions.elementToBeClickable(cookies_gotIt)).click(); driver.findElement(By.xpath("//*[@id='et-boc']/div/div/div[4]/div/div/div[2]/div[1]")).click(); Thread.sleep(10000); driver.quit(); } }
Advertisement
Answer
You no need to switch frame in your case, because there is no frame present in your page. Just inspect the “Accept Cookies” and click on that.
driver.get("https://www.zyyah.com/homeowner-lifestyle-perfected-home-value-protected/"); driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); driver.findElement(By.id("cookie_action_close_header")).click();
Use of Switch to Frame:
https://www.browserstack.com/guide/handling-frames-in-selenium
Use of Alert:
https://www.browserstack.com/guide/alerts-and-popups-in-selenium