-1

我可以使用以下代码获取 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 错误。

免责声明:我已经搜索了所有帖子,所以这不是一个重复的问题。

4

1 回答 1

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)
于 2019-11-20T12:32:32.323 回答