मैं webdriver in Python का उपयोग कर एक HTML फॉर्म में 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))
यह, पाठ क्षेत्र सामग्री का अजगर यूनिकोड स्ट्रिंग के प्रतिनिधित्व प्रिंट को छोड़कर सभी नई-पंक्तियों रिक्त स्थान ने ले ली है। रवींद्र!
सुनिश्चित नहीं है कि मुझे टेक्स्ट एन्कोडिंग समस्या का सामना करना पड़ रहा है, सेलेनियम/वेबड्राइवर बग (इसे ट्रैकर में नहीं मिला), या उपयोगकर्ता त्रुटि।
क्या ऐसा करने का कोई अलग तरीका है?
संपादित करें: मैंने अभी क्रोम को एक कोशिश दी है ... ठीक काम करता है। मैंने सेलेनियम के अंक ट्रैकर को bug की सूचना दी। सैम का वर्कअराउंड (नीचे स्वीकृत उत्तर) फ़ायरफ़ॉक्स में एक चेतावनी के साथ काम करता है: प्रतीकों को लौटाई गई स्ट्रिंग में HTML इकाई कोड में परिवर्तित कर दिया जाता है। यह no big deal है।
ग्रेट सुझाव। यह लगभग पूरी तरह से काम करता है। एकमात्र मुद्दा यह है कि परिणामी स्ट्रिंग में प्रतीकों का उनके HTML इकाई कोड में अनुवाद किया जाता है। यानी '' '' < 'बन जाता है, और इसी तरह। मैंने कुछ निम्न स्तर के पायथन मंत्रों को डाला और उस मुद्दे को कम कर दिया। –
संदर्भ के लिए, समकक्ष पायथन कोड 'text = my_web_driver.execute_script ("वापसी तर्क [0] .innerHTML", textarea_element) 'है। –
पायथन में, 'xml.sax.saxutils.unescape (टेक्स्ट)' '' '' '' ''इकाइयों से बाहर निकलता है। –