如何使用Selenium WebDriver获取文本框内容
我有一个文本区域的元素。这个文本区域的内容在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')