Баг/особенность? В хроме клик происходит по середине элемента, а если присмотреться к элементу, то в середине (между "Супер" и "грн") кликнуть нельзя :)
Сначала я добавила ожидание, пока элемент станет кликабельным:
WebDriver driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("http://hotline.ua/computer-igrovye-pristavki/sony-playstation-4-ps4/");
WebDriverWait wait = new WebDriverWait(driver, 30);
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@id='gotoshop']")));
driver.findElement(By.xpath("//*[@id='gotoshop']")).click();
И получила эксепшен с ошибкой, что элемент не кликабелен в такой-то точке:
Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: Element is not clickable at point (603, 555). Other element would receive the click: <a href="" data-type="buy" onclick="_gaq.push(['_trackEvent', 'Toolbar', 'FindInOneStore']);">...</a>
(Session info: chrome=40.0.2214.111)
Гугл по тексту ошибки нашел issue#2766 для селениума: https://code.google..../detail?id=2766
Показания, что не работает только в хроме, совпадают :)
Решение есть там же: driver.Navigate().GoToUrl(driver.FindElement(By.Id(embeddedSpanIdToClick)).FindElement(By.XPath("..")).GetAttribute("href"));
WebDriver driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("http://hotline.ua/computer-igrovye-pristavki/sony-playstation-4-ps4/");
WebDriverWait wait = new WebDriverWait(driver, 30);
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@id='gotoshop']")));
//driver.findElement(By.xpath("//*[@id='gotoshop']")).click();
String link = driver.findElement(By.xpath("//*[@id='gotoshop']")).getAttribute("href");
driver.get(link);
//
p.s. Я тоже учусь, но на попроще, практика наше всё :) Успехов!