【问题标题】:Problem with sending html to a rich text box using Selenium and Python使用 Selenium 和 Python 将 html 发送到富文本框的问题
【发布时间】:2021-02-19 10:15:13
【问题描述】:

我正在尝试将一个非常大的 html 部分发送到富文本框中,我已经设法发送了部分 html 代码,但问题是每当我发送代码时 html 内的链接都会打开

这就是我尝试发送的 html 代码的样子:

<meta content="width=device-width, initial-scale=1.0" name="viewport" />
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400,600|Roboto+Condensed:300,400,700" rel="stylesheet" />
<link href="https://..." />
<link href="https://cldup.com/....css" rel="stylesheet" />
<link href="https://fonts.googleapis.com/css?family=Bree+Serif|Cairo|Saira+Semi+Condensed:400,700|Ubuntu" rel="stylesheet" />
<div class="wholeWidth">
<header>
<div class="containerWidth"><img alt="banner" src="https://..." /></div>
</header>

<div class="containerWidth">
<nav class="navbar navbar-default">
<div class="container text-center">
<div class="navbar-collapse" id="navbar">
<ul class="nav navbar-nav">
    <li><a target="_blank" href="http://...">Gesch&auml;ft</a></li>
    <li><a target="_blank" href="https://...">NEUE ANKUNFT</a></li>
    <li><a target="_blank" href="....</a></li>
    <li><a target="_blank" href="....</a></li>
    <li><a target="_blank" href="http://contact.ebay.de/ws/eBayISAPI.dll?FindAnswers&amp;frm=284&amp;requested=der_old_shatterhand&amp;iid=-1">Kontakt</a></li>
</ul>
</div>
</div>
</nav>
</div>

<div class="containerWidth hidden-sm hidden-xs"><img alt="30days" class="img-responsive" src="https://..." /></div>

<div class="content">
<div class="listing_row1">
<div class="containerWidth">
<div class="row">

<div class="containerWidth"><img alt="banner" src="..." /></div>
                             <meta content="width=device-width, initial-scale=1.0" name="viewport" />
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400,600|Roboto+Condensed:300,400,700" rel="stylesheet" />
<link href="https://..." rel="stylesheet" />
<link href="https://..." />
<link href="https://fonts.googleapis.com/css?family=Bree+Serif|Cairo|Saira+Semi+Condensed:400,700|Ubuntu" rel="stylesheet" />
<div class="wholeWidth">
<header>
<div class="containerWidth"><img alt="banner" src="https://..." /></div>

这是发送的 html 的样子,它还打开了 html 中的所有链接:

<meta content="width=device-width, initial-scale=1.0" name="viewport" />
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400,600|Roboto+Condensed:300,400,700" rel="stylesheet" />
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<link href="https://cldup.com/BIUxxmE1z4.css" rel="stylesheet" />
<link href="https://fonts.googleapis.com/css?family=Bree+Serif|Cairo|Saira+Semi+Condensed:400,700|Ubuntu" rel="stylesheet" />
<div class="wholeWidth">
<header>
<div class="containerWidth"><img alt="banner" src="https://cldup.com/00FhLi9aZS.png" /></div>
</header>

<div class="containerWidth">
<nav class="navbar navbar-default">
<div class="container text-center">
<div class="navbar-collapse" id="navbar">
<ul class="nav navbar-nav">
</ul>
</div>
</div>
</nav>
</div>
</div>

这是我用来上传html的python代码,有什么办法解决吗?

my_html = "html code"` 
rich_text_box = driver.find_element_by_class_name("cke_source.cke_reset.cke_enable_context_menu.cke_editable.cke_editable_themed.cke_contents_ltr")

rich_text_box.clear()
rich_text_box.send_keys(my_html)

我还尝试执行 javascript 以发送 html,但它无法识别“my_html”。

iframe = driver.find_element_by_class_name("cke_wysiwyg_frame.cke_reset")
driver.switch_to.frame(iframe)
html_body = driver.find_element_by_css_selector('body')
driver.execute_script("arguments[0].innerHTML= my_html", html_body)

这是我尝试使用 javascript 时遇到的错误:

引发异常类(消息、屏幕、堆栈跟踪) selenium.common.exceptions.JavascriptException:消息:javascript 错误:my_html 未定义 (会话信息:chrome=88.0.4324.182)

【问题讨论】:

    标签: javascript python selenium ckeditor wysiwyg


    【解决方案1】:

    如果您想将其作为脚本注入,您必须像这样通过arguments[1] 发送您的 html 代码:

    driver.execute_script("arguments[0].innerHTML= arguments[1]", html_body, my_html)
    

    【讨论】:

      猜你喜欢
      • 2018-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-22
      • 2011-07-26
      • 1970-01-01
      相关资源
      最近更新 更多