#python #selenium #count #html-table #lines
#питон #selenium #считать #html-таблица #строки #python #количество
Вопрос:
У меня есть такая структура :
<table>
<tbody>
<tr id="1_2011_11_11_07_45_00" class="on">
</tr>
<tr id="1_2011_11_11_09_25_00">
</tr>
<tr id="1_2011_11_11_11_05_00">
</tr>
<tr id="1_2011_11_11_14_50_00">
</tr>
<tr id="1_2011_11_11_16_00_00">
</tr>
<tr id="1_2011_11_11_18_10_00">
</tr>
<tr id="1_2011_11_11_21_30_00">
</tr>
</tbody>
и я хотел бы подсчитать количество строк, которые находятся в таблице. Я использую Python для скрипта.
xpath таблицы равен :
xpath=/html/тело/форма/div[3]/div/div/div[2]/div/div/таблица
Кто-нибудь может мне помочь?
Ответ №1:
Также может быть выполнено через get_xpath_count. например Number_of_row = $browser.get_xpath_count(«/tbody/tr»)
Я не проверял приведенный выше код, но я думаю, что это сработает
Комментарии:
1. Большое спасибо! однако на моей странице 2 таблицы имеют почти одинаковый Xpath, у другой есть: xpath=/html/body /form/div[3]/div/div/div[2]/div[2] /div / table, и для этого требуется подсчет обоих, я не знаю почему
2. Это может быть связано с тем, что xpath_count для «/ tbody» равен 2. Следовательно, берется значение «tr» для обоих «/ tbody». Попробуйте указать абсолютный xpath для таблицы, которую вы хотите посчитать
Ответ №2:
s = """<table>
<tbody>
<tr id="1_2011_11_11_07_45_00" class="on">
</tr>
<tr id="1_2011_11_11_09_25_00">
</tr>
<tr id="1_2011_11_11_11_05_00">
</tr>
<tr id="1_2011_11_11_14_50_00">
</tr>
<tr id="1_2011_11_11_16_00_00">
</tr>
<tr id="1_2011_11_11_18_10_00">
</tr>
<tr id="1_2011_11_11_21_30_00">
</tr>
</tbody>"""
import re
len(re.findall('tr',s))
Ответ №3:
Xpath содержит функцию count(<выражение набора узлов>).
Упрощая ваш пример, если бы ваша таблица была единственной таблицей в исходном коде html, то количество выражений xpath (//table //tr) возвращало бы число 7.