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

新浪微博password授权模式需要申请,否则调用access_token返回HTTP status 400,code方式授权需要用户自己在浏览器输入用户名、密码,烦。http client模拟吧,发现多了一个ticket,sina用加密算法算的。如何直接授权?google了一下,看到网上有几种方案:
1、自己java按照ticket算法生成ticket然后http client模拟提交的;
2、通过js实现授权的;
我发明种新的,用Selenium!
		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();

猜你喜欢

转载自wildwind-zz.iteye.com/blog/1708767