WebDriver driver = new HtmlUnitDriver(true); // (true) включает js
driver.get(url);
List<WebElement> edits = driver.findElements(By.className("form_input")); // поиск полей для заполнения логина и пароля
edits.get(0).click(); // фокус на поле логина
edits.get(0).sendKeys(login); // ввод логина
edits.get(1).click(); // то же самое с паролем
edits.get(1).sendKeys(password);
driver.findElement(By.id("install_allow")).click(); // клик по кнопке подтверждения
// происходит редирект сюда http://pastebin.com/wATWDWi3
// страница с подтверждением прав приложения
driver.findElement(By.id("install_allow")).click(); // клик по кнопке, подтверждающей права приложения. Игнорируется, хоть ты до посинения кликай
Интересно, что если не включать js, то вместо страницы с подтверждением прав приложения происходит редирект сразу на выбранную в get запросе страницу с добавлением токена в url, т.е. пропускается этап подтверждения прав. Было бы наплевать, но в таком случае приложение не имеет прав вообще ни на что — надо как-то исправить.
UPD: во время авторизации пользователя дергать нельзя, все должно делаться автоматически, т.е. вариант с открытием окна браузера, который продвигает вконтактик, мне не подходит.