Éliminez la saisie de QR-Whatsapp Web automatisée par selenium-Java


J'essaie d'éliminer le processus du code QR après le premier Je le fais.

Mon code pour exécuter Whatsapp via un pilote Web:

public class DriverTester {

public static void main(String[] args) {

    DesiredCapabilities capabilities = DesiredCapabilities.chrome();
    capabilities.setCapability(CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR, UnexpectedAlertBehaviour.IGNORE);
    ChromeDriverService service = new ChromeDriverService.Builder()
            .usingDriverExecutable(new File("C:\\whatsup\\src\\main\\resources\\chromedriver.exe"))
            .usingAnyFreePort()
            .build();

    ChromeOptions options = new ChromeOptions();
    options.merge(capabilities);
    ChromeDriver driver = new ChromeDriver(service, options);

    driver.navigate().to("https://web.whatsapp.com/");

    while (driver.findElements(By.xpath(XPaths.autoStartReady)).size() == 0);

    LocalStorage localStorage = driver.getLocalStorage();

    driver.close();

    driver = new ChromeDriver(service, options);

    for (String key : localStorage.keySet()){
        String value = localStorage.getItem(key);
        driver.executeScript("window.localStorage.setItem('"+key+"', '"+value+"');");
    }

    driver.navigate().to("https://web.whatsapp.com/");

}

}

Lorsque le navigateur Web s'ouvre pour la première fois, je fais la routine QR code sur mon téléphone. L'exception a été levée lors de l'exécution du code javascript.

Mais j'obtiens la prochaine exception:

Exception in thread "main" org.openqa.selenium.NoSuchSessionException: no such session

Si j'essaie d'enregistrer les cookies, l'ensemble de cookies est vide (ne peut pas enregistrer de cookie, toujours je ne sais pas pourquoi).

Comment puis-je ignorer ce processus du QR après la première fois? Si quelqu'un sait comment le sauter sans même le faire une fois, ce sera également utile (mais je pense trop difficile pour l'instant).

Merci d'avance!

Author: Roni Kurtberg, 2018-04-14

1 answers

Utilisez des profils!

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument(r"user-data-dir=D:\Python\Memory\WebWhatsAppBot")

navegador = webdriver.Chrome(
executable_path="D:\Python\WebWhatsAppBot\chromedriver.exe", chrome_options=options)
navegador.get("https://web.whatsapp.com/")
 2
Author: Marcelo Franceschini, 2018-08-09 00:15:05