我试图使用webdriver in Python以HTML形式获取textarea的内容。如何使用webdriver获取textarea的文本内容?
我收到了文本,但是新行符丢失。 selenium docs几乎没用;他们说:
类selenium.webdriver.remote.webelement.WebElement(父,ID_)
[...]
文本:获取元素的文本。
我目前做如下:
from selenium import webdriver
# open the browser and web site
b = webdriver.Firefox()
b.get('http://www.example.com')
# get the textarea element
textbox = b.find_element_by_name('textbox')
# print the contents of the textarea
print(repr(textbox.text))
这将打印的文本域的内容,一个Python unicode字符串的表示,除了所有的新行已被替换空间。卫生署!
不知道我是否面临文本编码问题,硒/ webdriver错误(无法在跟踪器中找到它)或用户错误。
有没有不同的方法来做到这一点?
编辑:我只是给了Chrome一试...工作正常。我向硒问题追踪报告了一个bug。山姆的解决方法(下面接受的答案)适用于Firefox,但需要注意:符号在返回的字符串中转换为HTML实体代码。这是no big deal。
很棒的建议。这工作几乎完美。唯一的问题是符号在结果字符串中被转换成它们的HTML实体代码。即'<'变成'<',依此类推。我投了一些低级别的Python法术并缓解了这个问题。 –
作为参考,等效的Python代码是'text = my_web_driver.execute_script(“return arguments [0] .innerHTML”,textarea_element)'。 –
在Python中,'xml.sax.sax.sutils.unescape(文本)'不会转义'&','<' and '>'实体。 –