java - Selenium - 为什么加载的 cookie 不能完全工作?

标签 java selenium cookies samesite

我创建了一个函数(Selenium-Java)来登录、保存cookie并关闭当前 session 。然后再次打开浏览器并加载这些cookie(模拟)。 cookie 已加载,我已登录该页面。但是,当我尝试使用该页面中的其中一个按钮时,它不起作用。有人知道我做错了什么吗?它能识别出我正在使用自动化工具吗? 为什么 cookie 没有参数 SameSite>

private void Play()throws InterruptedException{
driver.get("https://webpage.ro/");
LoadCookies();
driver.findElement(By.xpath("//*[contains(text(), 'JOACĂ')]")).click();
sleep(5000);
SaveCookies();

}

private void LoadCookies() {
    try {
        File file = new File("src/test/java/Tests/cookies/" + contorStart + "_cookies.data");
        FileReader fileReader = new FileReader(file);
        BufferedReader Buffreader = new BufferedReader(fileReader);
        String strline;
        while ((strline = Buffreader.readLine()) != null) {
            StringTokenizer token = new StringTokenizer(strline, ";");
            while (token.hasMoreTokens()) {
                String name = token.nextToken();
                String value = token.nextToken();
                String domain = token.nextToken();
                String path = token.nextToken();
                String val = token.nextToken();
                DateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy");  //Sun Feb 09 01:57:10 EET 2020
                Date expiry = df.parse(val);
                Boolean isSecure = Boolean.parseBoolean(token.nextToken());
                //Boolean isHtOnly = Boolean.parseBoolean(token.nextToken());
                Cookie ck = new Cookie(name, value, domain, path, expiry, isSecure);
                driver.manage().addCookie(ck); // This will add the stored cookie to your current session
            }
        }
    } catch (Exception ex) {
        ex.printStackTrace();
        System.out.println("Can't load cookies");
    }
}
private void SaveCookies() {
    File file = new File("src/test/java/Tests/cookies/" + contorStart + "_cookies.data");
    try {
        // Delete old file if exists
        file.delete();
        file.createNewFile();
        FileWriter fileWrite = new FileWriter(file);
        BufferedWriter Bwrite = new BufferedWriter(fileWrite);
        // loop for getting the cookie information

        // loop for getting the cookie information
        int i = 0;
        for (Cookie ck : driver.manage().getCookies()) {
            i++;
            if (i != 4) {
                Bwrite.write((ck.getName() + ";" + ck.getValue() + ";" + ck.getDomain() + ";" + ck.getPath() + ";" + ck.getExpiry() + ";" + ck.isSecure()));//+";"+ck.isHttpOnly()));
                Bwrite.newLine();
            }
        }
        Bwrite.close();
        fileWrite.close();
    } catch (Exception ex) {
        ex.printStackTrace();
        System.out.println("Cookies not saved");
    }
}

Console warnings/error

谢谢!

最佳答案

我认为这并不完全是一个错误,而是 Chrome 对 future 弃用的合理警告。真正的问题是最后一行的错误 - 403。这意味着服务器未授权您调用该页面的特定 API。我认为提供更多信息(例如您正在做什么、代码等)会很有帮助。

关于java - Selenium - 为什么加载的 cookie 不能完全工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60169420/

相关文章:

javascript - url或cookie中的动态值和参数查询,如何?

java - 停止 Glass 上的自动调光

java - Apache FTPClient 上传 jar 文件最终被损坏

python - 如何通过 Selenium 和 Python 输入文本搜索并从搜索结果中检索值

java - 使用java写入网页

php - 允许的最大 cookie 数

node.js - 错误 : cookieParser ("secret") required for signed cookies

java - "Speaker Recognition and Segmentation"

java - 从字符串中查找符号 Java

selenium - 如何在 CircleCI 上连接到本地 Selenium