有没有办法使用python硒来获取网站的所有“内部html文本”及其对应的坐标?

时间:2019-11-20 06:41:07

标签: python selenium selenium-webdriver webdriver pytest-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 个答案:

答案 0 :(得分: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)