Я пытаюсь отправить длинный текст (более 1000 слов) в тело файла iframe
. Я использую send_keys
, и он работает плавно, но слишком медленно, поэтому я искал решения для повышения этой скорости. Я понял, что использование execute_script
, как показано ниже, может решить проблему скорости:
browserdriver.execute_script('document.body.innerHTML = "%s"' % body_text)
Я протестировал этот код с коротким предложением, и он работает хорошо, но когда я пробую свой реальный ввод (описание продукта, включающее множество разных предложений и абзацев), он показывает ошибку:
selenium.common.exceptions.WebDriverException: Message: unknown error: Runtime.evaluate threw exception: SyntaxError: Invalid or unexpected token
(Session info: chrome=75.0.3770.100)
(Driver info: chromedriver=74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}),platform=Windows NT 10.0.17134 x86_64)
Однако, если использовать:
webelement.send_keys(body_text)
работает хорошо, но медленно.
Есть ли какое-нибудь решение для решения этой проблемы моего кода execute_script
?
РЕДАКТИРОВАТЬ: я прочитал этот пост: Как отправить весь текст в текстовую область, используя селен в python, вместо того, чтобы отправлять его построчно? И я практиковал это, публикуя на сайте Google Translate, и это работает хорошо. Но когда я применил это к своему делу. Выяснилась ошибка, что:
selenium.common.exceptions.JavascriptException: Message: javascript error: Expected an <input> or <textarea>
А вот html в моем случае:
<iframe id="mce_0_ifr" frameborder="0" allowtransparency="true" title="Rich Text Area. Bấm ALT-F9 mở menu. Bấm ALT-F10 mở thanh công cụ. Bấm ALT-0 mở trợ giúp" style="width: 100%; height: 500px; display: block;" cd_frame_id_="4a3608c987a6e635206f3831764c495e"></iframe>
<body id="tinymce" class="mce-content-body " data-id="mce_0" contenteditable="true" spellcheck="false"><p></p></body>