я решил проблему применив
Thread.sleep(1000);
Как ни странно но после того как данные на форму автоизации были в ведены, я вызвал задержку, страница загрузилась и робот перешел по ссылке "Мои сообщения". Для опредпления ссылки я перепробывал все локаторы на сайте ВКонтакте. Из всех подошли By.xpath(".//*[@id='l_msg']/a") и By.id("l_msg").
Я не уверен что мое решение правильно так как вызов Thread.sleep(1000); увеличевает общее время выполнения всех задуманных действий роботом, но может комуто такое решение прийдется по вкусу.
А теперь кто может обьяснить внятно, понятно, емко, лаконично и даходчиво: "Почему из за поставленной мной системной задержки код начал работать? Ведь WebDriver работает напрямую с браузером, создавая монипуляции пользователя в нем, и когда он грузит страницу полностью, к примеру, он ожидает ее полной загрузки, а потом только выполняет действия на ней. Ведь с авторизацией в ВКонтакте посуте происходит тоже самое что и при полной загрузке страницы. Это очень тонкий момент, как по мне, и почитавшие ваш ответ на этот вопрос будут внимательнее относится к написанию роботов, соответственно и таких дуратских вопросов, как мой, будет меньше в разы. ". Дайте внятный ответ пожалуйста.
Пы.Сы. Вот даю код который у меня работает отлично:
package demotest;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.firefox.internal.ProfilesIni;
import org.openqa.selenium.security.UserAndPassword;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import com.thoughtworks.selenium.DefaultSelenium;
import com.thoughtworks.selenium.Selenium;
public class test {
public static void main(String[] args)throws NoSuchElementException,NullPointerException, InterruptedException {
ProfilesIni profiles = new ProfilesIni();
FirefoxProfile myprofile = profiles.getProfile("TestQA");
WebDriver driver = new FirefoxDriver(myprofile);
driver.get("http://www.vk.com");
WebElement element = driver.findElement(By.name("email"));
element.sendKeys("Ваш логин");
element = driver.findElement(By.name("pass"));
element.sendKeys("Ваш пароль");
element = driver.findElement(By.id("quick_login_button"));
element.click();
Thread.sleep(1000);
element = driver.findElement(By.id("l_msg"));//.id("l_msg"), .xpath(".//*[@id='l_msg']/a")
element.click();
}
}