Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ошибка в Selenium WebDriver



Software-Testing.Ru - портал тестировщиков  

Новые темы форума тестировщиков


Ошибка в Selenium WebDriver
2016-02-18 10:37

Привет, коллеги!

 

Заметил одну очень неприятную вещь.

Предположим мне нужно получить текст из определённого тега.

Использую следующую команду:

value = driver.findElement(By.xpath(locator)).getText();

, где locator - строка.

Так вот, если длина строки locator составляет меньше 48 символов, то никаких проблем нет, получаю нужный результат.

Если же длина строки locator составляет 48 символов и выше, причём локатор указывает на ТОТ ЖЕ САМЫЙ тэг, то в этом случае переменная value возвращает пустое значение. При этом никаких ошибок, что локатор, мол, неверен, не выдаётся.

Ошибок не выдаётся, просто возвращается пустая строка.

 

Вопрос: с этим можно что-то сделать?

 

Я понимаю, что самый простой ответ такой: "не строить таких длинных локаторов". Но все же хотелось бы понять, чем вызвано такое странное ограничение в 48 символов и почему не выдаётся никаких ошибок.

Хотя бы ругнулось бы, а то я кучу времени потратил, выясняя, что не так с локатором.



Помогите, пожалуйста, разобраться с локаторами.
2016-02-18 12: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); xz-index: -2; height: 433px;">
<div class="irc_c" data-ved="0ahUKEwjl14_y9oDLAhVHWiwKHYzkDsQQ-z8IAQ" style="visibility: visible; width: 1287px; transform: translate3d(1362px, 0px, 0px); xz-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>

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



Selenium IDE run после failures
2016-02-18 13:03

Возможен ли автоматический run после ошибки(failure) в selenium IDE?



Selenium IDE оператор if
2016-02-18 15:17

Возможен или существует оператор "если" (if) в selenium ide, или возможность дописать его в Java?



© 2010 | Software-Testing.Ru


В избранное