使用Selenium和Python将html发送到富文本框时出现问题

2024-10-02 14:21:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将一个非常大的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)


Tags: texthttpsdivcomhtmllinklicss