Selenium / Python TypeError: объект 'WebElement' не повторяется - PullRequest
0 голосов
/ 09 марта 2019

Я пытаюсь напечатать и / или записать в текст файла внутри тега span из следующего HTML-кода. Требуется только find_element один раз, а не find_elements, поскольку существует только один экземпляр:

<div>
  <span class="test">2</span>
</div>

Ниже приведен код Python, который я использую, который генерирует ошибку «Объект WebElement не повторяется».

test = driver.find_element_by_xpath("/html/body/div")

for numberText in test:
numberTexts = numberText.find_element_by_class_name("test")

print(numberTexts.txt)

Ответы [ 3 ]

2 голосов
/ 09 марта 2019

Вы получаете один элемент (первый):

driver.find_element_by_xpath("/html/body/div")

что явно не повторяется.

Для нескольких элементов, то есть для получения итерации, используйте:

driver.find_elements_by_xpath("/html/body/div")

Обратите внимание на s после element.

Также ознакомьтесь с документацией .

0 голосов
/ 09 марта 2019

один элемент не будет повторяться. Попробуйте find_elements_by_xpath (множественный элемент).

Если есть только один экземпляр, просто используйте его без цикла for.

0 голосов
/ 09 марта 2019

ошибка довольно понятна ... возвращаемое значение find_element_by_xpath равно WebElement. Вы не можете перебрать WebElement ...

у вас есть несколько других ошибок в вашем примере кода. Вы можете переписать весь блок кода следующим образом:

element = driver.find_element_by_class_name("test")
print(element.text)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...