尽管send_keys工作正常,但是execute_script无法发送长文本

时间:2019-06-19 10:29:51

标签: javascript python-3.x selenium sendkeys

我正在尝试向iframe的正文中发送一长段文字(超过1000个字)。 我使用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代码的问题的解决方案?

编辑: 我读了这篇文章: How to send entire text into a text area using selenium in python instead of sending it line by line? 我通过在Google翻译网站上发布来进行练习,效果很好。 但是当我将其应用于我的案子时。原来的错误是:

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>

0 个答案:

没有答案