Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 处理/接受Selenium中的cookie弹出窗口_Java_Selenium_Webdriver - Fatal编程技术网

Java 处理/接受Selenium中的cookie弹出窗口

Java 处理/接受Selenium中的cookie弹出窗口,java,selenium,webdriver,Java,Selenium,Webdriver,我试图在主页上“接受cookies”,但我的代码不起作用。我试图获取新的窗口句柄,然后为frame和Accept按钮标识后续的Xpath,但它始终不起作用 package seleniumTestPack; import java.util.concurrent.TimeUnit; import org.openqa.selenium.*; import org.openqa.selenium.chrome.*; import org.openqa.selenium.support.ui.Exp

我试图在主页上“接受cookies”,但我的代码不起作用。我试图获取新的窗口句柄,然后为frame和Accept按钮标识后续的Xpath,但它始终不起作用

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();
        
    }
 }

您不需要在案例中切换框架,因为页面中没有框架。只需检查“接受Cookies”并点击它

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();
使用切换到帧:

警报的使用:


在您的案例中不需要切换框架,因为页面中没有框架。只需检查“接受Cookies”并点击它

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();
使用切换到帧:

警报的使用:


下面的代码对我很有用。“接受Cookies”按钮不在任何弹出窗口下。所以这里没有框架或弹出窗口。在这里,我们只需要找到“接受Cookies”按钮并点击它

    WebDriver Driver = new ChromeDriver();
    Driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    String url = "https://www.zyyah.com/homeowner-lifestyle-perfected-home-value-protected/";
    Driver.get(url);
    Driver.findElement(By.id("cookie_action_close_header")).click();
    System.out.println("completed");

下面的代码对我有用。“接受Cookies”按钮不在任何弹出窗口下。所以这里没有框架或弹出窗口。在这里,我们只需要找到“接受Cookies”按钮并点击它

    WebDriver Driver = new ChromeDriver();
    Driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    String url = "https://www.zyyah.com/homeowner-lifestyle-perfected-home-value-protected/";
    Driver.get(url);
    Driver.findElement(By.id("cookie_action_close_header")).click();
    System.out.println("completed");