Есть ли способ получить весь "внутренний 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)
Другие вопросы по тегам