我試圖使用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 '>'實體。 –