2012-04-05 2 views
4

Мне нужно выполнить данные проверки из двух таблиц с использованием Selenium.Как я могу «десериализовать» данные таблицы HTML в двумерный массив?

Учитывая должным образом размеченный HTML таблицы заполнены данными:

<table> 
    <tbody> 
     <tr> 
      <td>A</td> 
      <td>B</td> 
      <td>C</td> 
     </tr> 

     <tr> 
      <td>1</td> 
      <td>2</td> 
      <td>3</td> 
     </tr> 
    </tbody> 
</table> 

И я хочу «десериализации» эту таблицу (собрать свои данные) в би-размерного массива (String[][]) с использованием Selenium. Причина, по которой я хочу сделать это, состоит в том, что у меня есть еще одна таблица HTML (на другой веб-странице), которая содержит, предположительно, те же самые данные, что и в ней, - и мне нужно выполнить проверку данных между этими двумя таблицами.

Я пробовал много вариантов о том, как решить эту проблему, и итеративные данные ячейки за ячейкой сбора (размещения клеток либо с помощью GetTable() или GetText() методов) не один из них - поскольку для перегрузки большой страницы на перегруженной веб-странице требуется огромное количество времени.

JavaScript инъекция (с использованием getEval() метода) не доступна в моем случае, поскольку таблица находится в < фрейма >, который имеет происхождение (базовый URL), который отличается от главной страницы , И согласно same origin policy это невозможно.

Ребята, любая идея о том, как решить данную проблему?

ответ

1

Вы можете использовать JAXB для десериализации HTML-текста в простой иерархии объектов Java, а затем для создания 2D-массива из этих объектов.

Другой вариант: проанализировать текст как XML в org.w3c.dom.Document и использовать XPath в Java для поиска и повторения элементов.

+0

Вы подразумеваете использование метода ** 'getHtmlSource' **? Есть ли альтернативы селена, чтобы получить только часть HTML вместо целого? –

+1

Либо использование getHtmlSource/getBodySource, а затем поиск элемента или element.getAttribute ("innerHTML") – Andrejs

+0

Не является ли '' innerHTML' ** объектным свойством, отличным от атрибута? –

Смежные вопросы