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

Фотография

Помогите, пожалуйста, разобраться с локаторами.

Css xpath selenium

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

#1 tatyana_krivets

tatyana_krivets

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

  • Members
  • Pip
  • 23 сообщений
  • ФИО:Кривец Татьяна

Отправлено 18 февраля 2016 - 09:32

День добрый.

 

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

 

Цель:

1. в гугле ввожу слово для поиска: Suzuki,

2. выбираю картинки (клик на ссылке "Картинки")

3. кликаю на второй по счету картинке -> открывается картинка чуть больше размера

4.  кликаю на картинке чуть большего размера, загружается новая страница.

Это тест. Пытаюсь реализовать. 

 

получаю ошибку на шаге 4. Неверный локатор. 

пользуюсь FirePath, но элемент все равно не находится, не работают ни мои Xpath, ни тот, что предлагает FirePath. 

Помогите, пожалуйста. 

 

Код:

public void clickOnPictures() {
		driver.findElement(By.linkText("Картинки")).click();
		//Click on a picture
		//driver.findElement(By.xpath(".//*[@id='rg_s']/div[9]/a/img")).click();
		driver.findElement(By.xpath(".//*[@id='rg_s']/div[2]/a/img")).click();
		
		driver.findElement(By.xpath(".//*[@id='irc_cc']/div[3]/div[1]/div[2]/div[2]/a/img")).click();
		//Проверить что открылось
		
			
		//String elementLocator = ".//*[@id='irc_cc']/div[3]/div[1]/div[2]/div[2]/a/img";
		//safeClick(elementLocator);
	   
	}
	
	
	public void safeClick(String elementLocator) {
        WebElement webElement = driver.findElement(By.xpath(elementLocator));
        if(webElement != null) {
                driver.findElement(By.xpath(elementLocator)).click();
        } else {
                // Используем TestNG API для логирования
                Reporter.log("Element: " + elementLocator + " is not available");
        }
}

HTML: 

<div id="irc_cc" style="width: 4011px; left: -1337px; transform: translate3d(0px, 0px, 0px);">
<div class="irc_c" data-ved="0ahUKEwjl14_y9oDLAhVHWiwKHYzkDsQQ-z8IAQ" style="display:none">
<div class="irc_c" data-ved="0ahUKEwjl14_y9oDLAhVHWiwKHYzkDsQQ-z8IAQ" style="visibility: visible; width: 1287px; transform: translate3d(2699px, 0px, 0px); z-index: -2; height: 433px;">
<div class="irc_c" data-ved="0ahUKEwjl14_y9oDLAhVHWiwKHYzkDsQQ-z8IAQ" style="visibility: visible; width: 1287px; transform: translate3d(1362px, 0px, 0px); z-index: -1; height: 433px;">
<div class="irc_t" jsaction="irc.cc" data-noload="" style="width: 860px;">
<div class="irc_pgb jfk-progressBar-blocking" style="left: 63px; top: 408px; width: 735px; display: none;">
<div class="irc_mic" style="height: 433px; width: 860px;">
<div class="irc_pb" style="display: none;">
<div class="_fUc irc_mimg" style="">
<a class="irc_mil i3597" data-noload="" jsaction="mousedown:irc.rl;keydown:irc.rlk" href="http://www.alvolante.info/espaciodelconsumidor/suzuki-sx4-crossover-2014-no-tendra-grandes-cambios-seguira-modelo/">
<img class="irc_mi" width="735" height="393" style="margin-top: 0px;" src="http://www.alvolante.info/wp-content/uploads/Suzuki-SX4-Crossover-frente-lateral.jpg"/>
</a>

Заранее спасибо за ответ.


  • 0

#2 tatyana_krivets

tatyana_krivets

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

  • Members
  • Pip
  • 23 сообщений
  • ФИО:Кривец Татьяна

Отправлено 18 февраля 2016 - 09:35

Если писать вот так:

 

.//*[@id='irc_cc']//a/img

 

то получается 16 результатов. Как в этом случае указать, что мне нужен первый. 

 

Вот так: .//*[@id='irc_cc']//a/img[1] - неверно, получаются те же 16 результатов. 

 

С помощью CSS тоже особо не получилось. 


  • 0

#3 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 18 февраля 2016 - 09:48

//div[contains(@class,'rg_di')][1]/a/img

нужно переключать именно див, а не img, а твой xpath выбирает img из каждого подобного div'a, соответственно он и находит это img во всех пободных блоках


  • 0

#4 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 897 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 18 февраля 2016 - 10:10

//div[@class='irc_ris']//div[@class='irc_rimask irc_tdi irc_rist']//img

  • 0

#5 tatyana_krivets

tatyana_krivets

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

  • Members
  • Pip
  • 23 сообщений
  • ФИО:Кривец Татьяна

Отправлено 18 февраля 2016 - 14:24

//div[@class='irc_ris']//div[@class='irc_rimask irc_tdi irc_rist']//img

Спасибо, работает. Гмм. совсем не сложно оказалось...


  • 0

#6 tatyana_krivets

tatyana_krivets

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

  • Members
  • Pip
  • 23 сообщений
  • ФИО:Кривец Татьяна

Отправлено 18 февраля 2016 - 14:27

//div[contains(@class,'rg_di')][1]/a/img

нужно переключать именно див, а не img, а твой xpath выбирает img из каждого подобного div'a, соответственно он и находит это img во всех пободных блоках

 

Находит неправильно :), но мысль понятна, спасибо что указали на ошибку. 


  • 0

#7 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 18 февраля 2016 - 15:01

 

//div[contains(@class,'rg_di')][1]/a/img

нужно переключать именно див, а не img, а твой xpath выбирает img из каждого подобного div'a, соответственно он и находит это img во всех пободных блоках

 

Находит неправильно :), но мысль понятна, спасибо что указали на ошибку. 

 

нда... я вообще про элемент на другой странице. сорри )


  • 0



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

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

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