Перейти к содержимому

Фотография

Selenium не находит элемент страницы.

selenium

  • Авторизуйтесь для ответа в теме
В теме одно сообщение

#1 gigs

gigs

    Новый участник

  • Members
  • Pip
  • 5 сообщений

Отправлено 15 февраля 2015 - 16:17

Здравствуйте, вот пробую я практиковаться в автоматизированом тестировании и у меня возникла такая проблема: есть ссылка на сайте хотлайн, нужно выбрать например магазин "Супер Приставки" с лева. Я делаю так:

public static void main(String[] args) {
		System.setProperty("webdriver.chrome.driver",
				"C:\\ChromeDriver\\chromedriver.exe");
				WebDriver driver = new ChromeDriver();
				driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
				
				driver.get("http://hotline.ua/computer-igrovye-pristavki/sony-playstation-4-ps4/");
				driver.findElement(By.xpath("//*[@id='gotoshop']")).click();

	}

но когда я запуская тест, то селениум не может найти элемент с этим магазином. Я пробовал  и xpath и css и name но ничего не работает. Помогите пожалуйста решить проблему.

 

Кстати заметил что это только с браузером Chrome такая проблема, остальные работают нормально.


  • 0

#2 Saga

Saga

    Новый участник

  • Members
  • Pip
  • 37 сообщений
  • ФИО:Maryna Kolesnik
  • Город:Киев


Отправлено 15 февраля 2015 - 19:03

Баг/особенность? В хроме клик происходит по середине элемента, а если присмотреться к элементу, то в середине (между "Супер" и "грн") кликнуть нельзя  :)

 

 

Сначала я добавила ожидание, пока элемент станет кликабельным:

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. Я тоже учусь, но на попроще, практика наше всё  :) Успехов!


  • 2



Темы с аналогичным тегами selenium

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных