java selenium无法通过cookies免密登录腾讯视频创作平台
这是我的代码,首先通过扫码获取cookies并保存:
public class TencentVideoScanQR {
public WebDriver webDriver;
@BeforeClass
public void SetupEnv(){
Path p1 = Paths.get("src", "drivers", "chromedriver.exe");
System.setProperty("webdriver.chrome.driver", p1.toAbsolutePath().toString());
// 创建浏览器实例
ChromeOptions options = new ChromeOptions();
options.addArguments("--remote-allow-origins=*");
webDriver = new ChromeDriver(options);
}
@Test
public void ScanQR() throws InterruptedException {
webDriver.manage().window().maximize();
webDriver.get("https://mp.v.qq.com");
Thread.sleep(60000);
Set<Cookie> cookiedata = webDriver.manage().getCookies();
System.out.println(cookiedata);
try {
File Coo = new File("C:\\Users\\30595\\Desktop\\TencentVideoCookies.txt"); // 相对路径,如果没有则要建立一个新的output.txt文件
if (!Coo.exists()) {
Coo.createNewFile(); // 创建新文件,有同名的文件的话直接覆盖
}
FileWriter fileWriter = new FileWriter(Coo);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
for (Cookie cookie : cookiedata) {
bufferedWriter.write((
cookie.getName() + ";" +
cookie.getValue()));
bufferedWriter.newLine();
}
//bufferedWriter.flush(); // 把缓存区内容压入文件
bufferedWriter.close();
fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
@AfterClass
public void tearDownEnv() throws InterruptedException {
webDriver.quit();
}
}
再通过读取cookies进行免密登录,但遇到了问题无法自动登录,但是同样的代码可以登录小红书抖音以及微信公众号,很奇怪:
public class TencentVideoLogin {
public WebDriver webDriver;
@BeforeClass
public void SetupEnv(){
Path p1 = Paths.get("src", "drivers", "chromedriver.exe");
System.setProperty("webdriver.chrome.driver", p1.toAbsolutePath().toString());
// 创建浏览器实例
ChromeOptions options = new ChromeOptions();
options.addArguments("--remote-allow-origins=*");
webDriver = new ChromeDriver(options);
}
@Test
public void LoginTencentVideo() throws InterruptedException {
webDriver.get("https://mp.v.qq.com");
Set<Cookie> cookiedata1 = webDriver.manage().getCookies();
//Thread.sleep(10000);
System.out.println(cookiedata1);
BufferedReader bufferedReader;
try {
File cookieFile = new File("C:\\Users\\30595\\Desktop\\TencentVideoCookies.txt");
FileReader fileReader = new FileReader(cookieFile);
bufferedReader = new BufferedReader(fileReader);
String line;
while ((line = bufferedReader.readLine()) != null) {
StringTokenizer stringTokenizer = new StringTokenizer(line, ";");
while (stringTokenizer.hasMoreTokens()) {
String name = stringTokenizer.nextToken();
String value = stringTokenizer.nextToken();
Cookie cookie = new Cookie(name, value);
webDriver.manage().addCookie(cookie);
}
}
}
catch (Exception e) {
e.printStackTrace();
}
webDriver.navigate().refresh();
Set<Cookie> cookiedata = webDriver.manage().getCookies();
System.out.println(cookiedata);
}
@AfterClass
public void tearDownEnv() throws InterruptedException {
Thread.sleep(30000);
webDriver.quit();
}
}