Я сохраняю все файлы cookie для входа в Gmail. Я использую эти куки, когда я снова вхожу в gmail. Я загружаю этот файл cookie, но я не могу войти в это исключение cookie, например «Исключение из потока« main »org.openqa.selenium.InvalidCookieDomainException: вы можете устанавливать только файлы cookie для текущий домен "Обработка файлов нескольких доменов с использованием selenium webdriver
Мой код выглядит следующим образом:
File f = new File("c:\\browser.data");
WebDriver driver = new FirefoxDriver(fb, fp);
driver.get("https://accounts.google.com");
driver.findElement(By.name("Email")).sendKeys("myusername");
driver.findElement(By.name("Passwd")).sendKeys("mypassword");
driver.findElement(By.name("PersistentCookie")).click();
driver.findElement(By.name("signIn")).submit();
Thread.sleep(20000);
try {
f.delete();
f.createNewFile();
try (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()));
bos.newLine();
}
bos.flush();
}
} catch (IOException ex) {
ex.printStackTrace();
}
driver.findElement(By.cssSelector(".gb_V.gbii")).click();
driver.findElement(By.xpath(".//*[@id='gb_71']")).click();
driver.close();
WebDriver driver1 = new FirefoxDriver(pf);
driver1.get("https://accounts.google.com");
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String line;
while ((line = br.readLine()) != null) {
StringTokenizer str = new StringTokenizer(line, ";");
while (str.hasMoreTokens()) {
String name = str.nextToken();
String value = str.nextToken();
String domain = str.nextToken();
String path = str.nextToken();
Date expiry = null;
String dt;
if (!(dt=str.nextToken()).equals("null")) {
expiry =new SimpleDateFormat("EEE MMM d H:m:s z y").parse(dt);
}
boolean isSecure = Boolean.valueOf(str.nextToken()).booleanValue();
Cookie ck1 = new Cookie(name, value, domain, path, expiry, isSecure);
System.out.println(domain);
if (domain.equalsIgnoreCase(".google.com")) {
driver1.get("https://accounts.google.com/ ");
driver1.manage().addCookie(ck);
driver1.get("https://accounts.google.com/ ");
}
if (domain.equalsIgnoreCase(".mail.google.com")) {
//driver1.get("http://accounts.google.com");
driver1.get("http://mail.google.com");
Thread.sleep(10000);
driver1.manage().addCookie(ck);
//driver1.get("http://accounts.google.com");
driver1.get("http://mail.google.com");
}
}
}
После получения долгих поисков я не могу получить какое-либо решение или обходной путь для этого.
Как я понимаю, этот тип ошибки произошел при однократном входе в систему для проверки нескольких доменов.
Мне действительно нужно зайти в gmail с помощью файлов cookie. Это пример того, что есть несколько сайтов, где это реализуется тогда, как мы можем справиться с этим в selenium webdriver?
спасибо за вашу помощь .... Я изменяю свой заданный вопрос. Я добавляю больше кода, с помощью которого вы можете понять, что я делаю на самом деле. Здесь вы можете понять, что основной создатель проблемы - это .main.google.com, пожалуйста, код и исправить меня, если я сделал беспорядок в коде. – saba
Если вы просматриваете мой код, то видите, что я вхожу в свой gmail, добавляю все файлы cookie в файл и закрываю браузер, а затем запускаю браузер и подаю файлы cookie из файла ...... Я также делаю это с помощью facebook и входа в систему в facebook с помощью файлов cookie, почему бы и не для gmail, вы можете сказать многодоменную проблему, но как я могу ее решить, пожалуйста, помогите мне. – saba
Пробовал свой код и не работал. Вызов '' 'mail.google.com''' перенаправляет меня на' '' 'accounts.google.com''', поэтому невозможно установить cookie с селеном. Но со всеми файлами cookie с '' '.google.com''' вы вошли в систему и можете получить доступ, например. https://www.google.com/settings/personalinfo. Я думаю, вам нужен токен-токен, чтобы перейти к другим приложениям, поэтому, возможно, [это помогает] (https://developers.google.com/accounts/docs/OAuth2Login). – lefloh