[英]How do I make BeautifulSoup parse the contents of textarea tags as HTML?
[英]How do I get the text contents of a textarea with webdriver?
我正在尝试使用Python中的webdriver在 HTML表单中获取textarea的内容。
我收到了文字,但缺少换行符。 硒文档几乎没用; 他们说:
class selenium.webdriver.remote.webelement.WebElement(parent,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))
这将打印textarea内容的Python unicode字符串的表示形式,除了所有换行符已被空格替换。 卫生署!
不确定我是否面临文本编码问题,selenium / webdriver错误(无法在跟踪器中找到它)或用户错误。
有没有不同的方法来做到这一点?
编辑 :我只是尝试了Chrome ...工作正常。 我向selenium的问题跟踪器报告了一个错误 。 Sam的解决方法(下面接受的答案)适用于Firefox,但有一点需要注意:符号在返回的字符串中转换为HTML实体代码。 这没什么大不了的 。
我刚刚获得了标签textarea的属性值。 下面是Java代码示例。
WebElement textarea = driver.findElement(By.id("xf-1242"));
String text = textarea.getAttribute("value");
log.debut(text);
我正在使用Chrome驱动程序,上面的代码在日志中添加了一行文本(在我的情况下为XML)。 我从http://www.w3schools.com/jsref/dom_obj_textarea.asp得到了这个想法
一月
作为一种解决方法,您可以尝试使用ExecuteScript来获取innerHtml。 我不是一个python的人,但它在C#:
IWebElement element = ...
String returnText = ((IJavaScriptExecutor)webDriver).ExecuteScript("return arguments[0].innerHTML", element).ToString();
在Python中首先获取元素,并在获取属性值之后,在python中使用get_attribute('value')。
from selenium import webdriver
driver = webdriver.Firefox()
URL = "http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_textarea"
driver.get(URL)
driver.switch_to.frame("iframeResult")
# get the textarea element by tag name
textarea = driver.find_element_by_tag_name('textarea')
# print the attribute of the textarea
print(textarea.get_attribute('value'))
print(textarea.get_attribute('rows'))
print(textarea.get_attribute('cols'))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.