通过Selenium实现新浪微博自动授权

新浪微博password授权模式需要申请,否则调用access_token返回HTTP status 400,code方式授权需要用户自己在浏览器输入用户名、密码,烦。http client模拟吧,发现多了一个ticket,sina用加密算法算的。如何直接授权?google了一下,看到网上有几种方案:
1、自己java按照ticket算法生成ticket然后http client模拟提交的;
2、通过js实现授权的;
我发明种新的,用Selenium!
[code]
WebDriver driver = new ChromeDriver();
driver.get(url + "?" + queryString);
WebElement userIdElement = driver.findElement(By.xpath(xPathOfUserId));
logger.info("--- userName: " + userIdElement);
if (userIdElement != null) {
userIdElement.sendKeys(userName);
WebElement passwordElement = driver.findElement(By
.xpath(xPathOfPassword));
logger.info("--- password: " + passwordElement);
if (passwordElement != null) {
passwordElement.sendKeys(password);
WebElement submitElement = driver.findElement(By
.xpath(xPathOfSubmit));
if (submitElement != null) {
logger.info("--- submit: " + submitElement);
submitElement.click();
}
}
}
logger.info("waiting...");
try {
Thread.sleep(30000);
} catch (InterruptedException e) {
e.printStackTrace();
}
logger.info("quit");
driver.quit();
[/code]

你可能感兴趣的:(通过Selenium实现新浪微博自动授权)