Selenium + JAVA
есть страница поиска товаров.
задав определенные критерии поиска, на странице отображается список товаров
необходимо в массив загнать их названия.
...
for (int i=0;i<counter;i++){
wash[i]= selenium.getText("//div[@id='mainpanel']/ul[@class='prods']/li['i']/div[1]/div[1]/a");
System.out.println(wash[i]);
}
...
но при этом мне выводит первое название товара counter раз, почему? массив определен как стринг (String wash[]= new String[50];)
возможно согрешу, но почему бы не сделать так
определяем обьект в котором эти линки находятся, дальше делаем obj.getElementsByTagName("a") на выходе уже коллекция. названия будут inner/outer HTML (возможны варианты). Сорри что не пытаюсь найти ошибку в вашем коде, не могу лицезреть сорс страницы
на будущее, надо еще и указывать пример исходного кода страницы, чтобы задача была более очевидна.
проблема я думаю в xpath "//div[@id='mainpanel']/ul[@class='prods']/li['"+i+"']/div[1]/div[1]/a", но для того чтобы быть полностью уверенным надо видеть исходный код сгенеренной страницы, так как елементы div[1] тоже могут делать поблемы.
А вообще надо оптимизировать xpath на "//div[@id='mainpanel']/ul[@class='prods']/li['"+i+"']//a" чтобы избжать проблем с div[1]
Изменила в xpath-e ../li['i']/.. на ../li["+i+"]/.. и проблема решилась :) + оптимизировала xpath
Все замечания учту на будущее!!!
Спасибо за помощь!
возможно так сделать можно, но я об этом впервые слышу))) новичек в этом деле :)
попробую так же определить объект этим способом
Спасибо за помощь!
По поводу определения локаторов можно почитать следующие статьи http://automated-testing.info/knowledgebase/tags/lokator
ID юзера генерится при каждом запуске. Чтобы вытянуть текст из span необходимо знать id юзера.
...
for (int i=1;i<kol_players.intValue(); i++){
id=browser_FF.getAttribute("//ul[@class='list-players']/li["+i+"]@id");
System.out.println("user's id["+i+"]="+id);
span=browser_FF.getAttribute("//li[@id="+id+"]/span");
}
...
id вытянуло без проблем, а вот на выделенную строчку ругается: com.thoughtworks.selenium.SeleniumException: ERROR: Invalid xpath [2]: //li[
в чем проблема?!
...
<h3>List of Players:</h3> <ul class="list-players"> <li id="user-info-line-18250"> <b class="player1"></b> <p class="player1" style="color: #cccccc !important;">
qwerty ($1000) </p> <span>Owner</span> </li> <li id="user-info-line-5486"> <b class="player2"></b> <p class="player2" style="font-weight: bold;color: #cccccc !important;"> vvvvvv ($1000) </p>
<span> <a href="index.php?r=user/logout&id=5486" style="color: #ffffff;"> Disconnect </a> </span> </li> </ul>
...
все дело в типе данных.
id - String.
преобразовала в int и проблема исчезла.