Селен - почему загруженные куки не работают полностью? - PullRequest
0 голосов
/ 11 февраля 2020

Я создал функцию (Selenium- Java) для входа в систему, сохранения файлов 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

Спасибо!

1 Ответ

0 голосов
/ 11 февраля 2020

Я считаю, что это не совсем ошибка, а справедливое предупреждение Chrome о будущем износе. Настоящая проблема в том, что ошибка в последней строке - 403. Это означает, что сервер не разрешает вам вызывать конкретный API этой страницы. Я думаю, будет полезно предоставить больше информации, например, что вы делаете, код и т. Д. c.

...