2015-01-05 2 views
4

У меня есть следующая страница html, где я пытаюсь найти слово silver и следить за количеством найденных.Подсчитайте количество элементов, найденных в selenium python

Это всего лишь два показанных здесь, но он может генерировать больше, поэтому я не знаю точное количество.

<tr id="au_4" class="odd"> 
<td>Silver</td> 
</tr> 
<tr id="au_4" class="even"> 
<td>Silver</td> 
</tr> 

Это то, что я не пытался, но не повезло:

count = driver.find_elements_by_xpath("//td[text()='Silver']") 
+0

вы можете попробовать 'len (re.findall (" silver ", your_string, re.I))' – Hackaholic

+0

@Hackaholic Это не строка, OP пытается найти элементы внутри HTML-файл. – Maroun

+0

@MarounMaroun весь HTML можно взять как строку – Hackaholic

ответ

14

count является список всех элементов, которые были найдены. Для того, чтобы найти его длину, вы должны:

len(count) 

Я настоятельно рекомендую вам пройти через docs, чтобы лучше понять, как работает Selenium.

+0

спасибо, что на самом деле мой код работал, все, что мне нужно было сделать, это проблема, проблема с python иногда заключается в том, что указанная ошибка явно не указывает, что пошло не так, плюс я действительно новый к нему. Я просто не понимаю, почему вопрос получил отрицательный голос, кажется мне законным вопросом, разве это место для этого? – Nro

+1

@Nro Я рад, что это помогло. Я предлагаю вам пройти через [hep center] (http://stackoverflow.com/help), чтобы лучше понять, как работает переполнение стека. Мы ожидаем, что минимальное понимание проблемы будет решена, возможно, люди занижены, потому что они ожидали, что, по крайней мере, вы знаете, какая функция вы используете. Во всяком случае, я вижу хорошо заданный вопрос, будет повышаться. – Maroun

0

Было бы довольно быстро получить счет через execute_script затем получить len от результата find_elements_by вызова метода:

script = "return $(\"td:contains('{}')\").length".format(text="Silver") 
count = driver.execute_script(script) 

образца выше подходит для вас, если вы используете JQuery, другие способы извлечения элементов с помощью текстового значения может можно найти в How to get element by innerText SO вопрос ...

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