如何使用Selenium WebDriver获取文本框内容

8 投票
2 回答
12972 浏览
提问于 2025-04-18 02:19

我有一个文本区域的元素。这个文本区域的内容在HTML代码里是看不到的。但是当网页加载时,这个内容会显示出来。请问如何用Selenium和Python获取这个内容呢?

<textarea id="query" class="textarea" cols="37" rows="30"></textarea>

2 个回答

2

你可以做的一件事是,先对那个区域截图,然后再用tesseract提取里面的文字。我遇到过同样的问题,就是输入的文字没有存储在值属性里。

如何截图

featureElement = browser.find_element_by_xpath("//textarea//..")
featureElement.screenshot('foo.png')

#从图片中读取文字

images = cv2.imread('image_path')

将图片转换为灰度图

gray = cv2.cvtColor(images, cv2.COLOR_BGR2GRAY)

cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)[1]

处理图片时的内存使用情况,也就是把图片放到内存里

filename = "{}.jpg".format(os.getpid())
cv2.imwrite(filename, gray)
text = pytesseract.image_to_string(Image.open(filename))
print(text)
8

textarea中的内容会显示在它的value属性里,就像input元素一样。所以可以想象成这样(伪Python代码)

 contents = driver.find_element_by_id('query').get_attribute('value')

撰写回答