Добрый день!
У меня есть такая таблица такого вида:
<table>
<tr>
<td>1</td>
<td>2</td>
</tr>
<tr>
<td>3</td>
<td>4</td>
</tr>
</table>
Я понимаю как, например, получить все элементы tr или по-отдельности каждый td, но вот можно ли как-то делать выборку, чтобы получить массив в виде:
array(
0 => array (1,2) ,
1 => array (3,4)
)
Ну или какой-то похожей структуры? вобщем, чтобы как-то можно было объединять эти td по группам, где они являются дочерними одного и того же tr
2-х мерный массив создать нужно и в цикле заполнять элементы по какотому принципу.
Нужно написать универсальные геттеры ваших элементов сначала, тоесть доставать отдельно строки
driver.findElement(By.id("table_id"));
List<WebElement> rows = table.findElements(By.tagName("tr"));
Iterator<WebElement> i = rows.iterator();
System.out.println("-----------------------------------------------");
while(i.hasNext()) {
WebElement row = i.next();
List<WebElement> columns = row.findElements(By.tagName("td"));
Iterator<WebElement> j = columns.iterator();
System.out.print(" | ");
while(j.hasNext()) {
WebElement column = j.next();
System.out.print(column.getText());
System.out.print(" | ");
}
System.out.println("");
System.out.println("-----------------------------------------------");
}
спасибо Вам большое за старания!
но у меня какая-то видимо не очень удачная версия WebDriver-PHP (https://github.com/chibimagic/WebDriver-PHP), потому что метод-аналог для next в phpunit работает некорректно... =(
Когда на странице много td, то метод возвращает не дочерний элемент, а первый, который есть на странице...
Буду искать еще варианты...
ну это Java
наверное, придется со временем переквалифицироваться мне)
накалякал тут для Вас оберточку для таблиц такого вашего типа универсальную
може пригодиться
не компилил и не пробовал запускать, так что можетет попробувать))
покажите как вы реализовали ваш код?
есть два метода выбора в вашем фреймворке get_next_element и get_all_next_elements
вам нужно использовать метод get_all_next_elements, который вернет вам все запиши, а не только первую
код методов такой, как видите во втором делается цикл и возвращает много элементов
спасибо большущее! уверена, что пригодится)