Есть ли способ получить весь "внутренний html-текст" веб-сайта и его соответствующие координаты с помощью python selenium?
Я могу получить элементы div с помощью этого кода:
divs = driver.find_elements_by_xpath("//div")
и, перебирая div и используя атрибут.text, я также могу получить текст
код:
for i in divs:
print(i.text)
но в моем случае мне нужно расположение, а также размер текста. Пожалуйста помоги!!
Мой код:
for i in range(0,len(WEBSITES)):
print(timestamp()) #timestamp
print(i,WEBSITES[i]) #name of the website
driver.get(WEBSITES[i])
delay = 10
time.sleep(delay)
img = cv2.imread(os.getcwd() + '/' + str(i)+'.png')#read the image to be inscribed
print("getting div tags \n")
divs = driver.find_elements_by_xpath("//div")# find all the div tags
# anchors = divs.find_elements_by_xpath("//*")#find all the child tags in the divs
for i in divs:
print(i.text.location)
Всякий раз, когда я пытаюсь использовать атрибут.location или.size, я получаю ошибку Unicode.
Отказ от ответственности: я просмотрел все сообщения, поэтому это не повторяющийся вопрос.
1 ответ
Решение
Можете ли вы попробовать получить координаты div, а не текста. Как показано ниже.
for i in divs:
print(i.location)
редактировать
Итак, если вы хотите получить текстовые координаты всего текста на странице, получите текстовые элементы на странице, как показано ниже, и получите их координаты.
textElements = driver.find_elements_by_xpath("//body//*[text()]") #Gets all text elements
for i in textElements:
print(i.text)
print(i.location)