python - 如何使用 webdriver 获取文本区域的文本内容?

标签 python selenium webdriver

我正在尝试获取 textarea 的内容在 HTML 表单中使用 webdriver in Python .

我正在获取文本,但缺少换行符。 selenium docs几乎没用;他们说:

class selenium.webdriver.remote.webelement.WebElement(parent, id_)

[...]

text: Gets the text of the element.

我目前正在做以下事情:

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 字符串的表示形式,除了所有换行符都已被空格替换。呸!

不确定我是否遇到文本编码问题、selenium/webdriver 错误(无法在跟踪器中找到它)或用户错误。

有没有其他方法可以做到这一点?

编辑:我刚刚试了一下 Chrome……工作正常。我报告了一个bug到 selenium 的问题跟踪器。 Sam 的解决方法(下面接受的答案)在 Firefox 中有效,但有一个警告:符号在返回的字符串中转换为 HTML 实体代码。这是 no big deal .

最佳答案

我刚刚得到标签文本区域的属性值。以下是 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

一月

关于python - 如何使用 webdriver 获取文本区域的文本内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8303094/

相关文章:

python - 我求1000以下所有3或5的倍数之和的方法

python - 在 Python 中组合正则表达式 -\W 和\S

java - 无法为 IE11 自动拖放 : Selenium WebDriver

selenium - 我可以在计算机 A 上运行 Selenium,并看到计算机 B 中的浏览器吗?

c# - 获取 selenium 下拉框中当前选定的选项

python - Matplotlib 修复轴 - 日期太多

c# - Selenium WebDriver C# - 从 iFrame 切换回 MainPage 标题很困难

python - Selenium 显式等待错误地接受 EC.visibility_of_element_located xpath 元素

java - WebDriver - 查找与元素相对应的文本

python - 使用 "open()"与 "with open()"读取文件