我正在尝试使用Python中的webdriver以 HTML形式获取文本区域的内容。
我正在获取文本,但是缺少换行符。该selenium文档是几乎无用的; 他们说:
selenium.webdriver.remote.webelement.WebElement类(父代,id_) […] text:获取元素的文本。
selenium.webdriver.remote.webelement.WebElement类(父代,id_)
[…]
text:获取元素的文本。
我目前正在执行以下操作:
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字符串的表示形式,除非所有换行符都已替换为空格。h!
不知道我是否遇到文本编码问题,selenium / webdriver bug(在跟踪器中找不到)或用户错误。
有其他方法可以做到吗?
编辑 :我只是尝试了Chrome …工作正常。我向selenium的问题跟踪器报告了一个错误。Sam的解决方法(以下是可接受的答案)在Firefox中起作用,但有一个警告:将符号在返回的字符串中转换为HTML实体代码。
作为一种解决方法,您可以尝试使用ExecuteScript来获取innerHtml。我不是python家伙,但是在C#中:
IWebElement element = ... String returnText = ((IJavaScriptExecutor)webDriver).ExecuteScript("return arguments[0].innerHTML", element).ToString();