我可以使用以下代码获取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错误。
免责声明:我已经搜索了所有帖子,因此这不是重复的问题。
答案 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)