Как добавить и использовать куки для веб-сайта? - PullRequest
0 голосов
/ 18 октября 2019

Я работаю над программным обеспечением для автоматизации публикации постов. Когда я вхожу в систему по электронной почте и паролю, после 4 запусков мне предлагается заполнить капчу, поэтому я хочу использовать файлы cookie, но не могу заставить их работать.

Я посмотрел пару видео, но не понялбольшинство из них, пока я не наткнулся на этот код:

    File f = new File("browser.data");
    try{
        f.delete();
        f.createNewFile();
        FileWriter fos = new FileWriter(f);
        BufferedWriter bos = new BufferedWriter(fos);

        for(Cookie ck: driver.manage().getCookies()) {
            bos.write((ck.getName()+";"
            +ck.getValue()+";"
            +ck.getDomain()+";"
            +ck.getPath()+";"
            +ck.getExpiry()+";"
            +ck.isSecure()));
            System.out.println(ck);
            bos.newLine();
        }
        bos.flush();
        bos.close();
        fos.close();
    }catch(Exception ex){
        ex.printStackTrace();
    }

, который, очевидно, отлично работает для создания куки, но когда я пытаюсь его использовать, ничего не происходит.

Это все мои основные,Я настоящий нуб, когда дело доходит до селена, печенья и т. Д. Поэтому я надеюсь, что кто-то здесь может мне помочь.

public static void main(String[] args) {
System.setProperty("webdriver.firefox.driver","C:\\geckodriver.exe");
FirefoxDriver driver = new FirefoxDriver();
WebDriverWait wait = new WebDriverWait(driver, 10);

    driver.get("examplejobpostingsite.com");
    wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("login-email-input"))).sendKeys("test@protonmail.com"); //let cookies take over later on
    driver.findElement(By.id("login-password-input")).sendKeys("pass");
    driver.findElement(By.id("login-submit-button")).click();

    wait.equals(2);

    File f = new File("browser.data");
    try{
        f.delete();
        f.createNewFile();
        FileWriter fos = new FileWriter(f);
        BufferedWriter bos = new BufferedWriter(fos);

        for(Cookie ck: driver.manage().getCookies()) {
            bos.write((ck.getName()+";"
            +ck.getValue()+";"
            +ck.getDomain()+";"
            +ck.getPath()+";"
            +ck.getExpiry()+";"
            +ck.isSecure()));
            System.out.println(ck);
            bos.newLine();
        }
        bos.flush();
        bos.close();
        fos.close();
    }catch(Exception ex){
        ex.printStackTrace();
    }
}

, когда я пытаюсь driver.manage().getCookieNamed("browser.data") Ничего не происходит, кроме как через 10 секунд я получаю тайм-аутиз-за моего WebDriverWait.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...