问题描述
我正在尝试将一个非常大的 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ä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&frm=284&requested=der_old_shatterhand&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,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,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)
解决方法
如果您想将其作为脚本注入,您必须像这样通过 arguments[1]
发送您的 html 代码:
driver.execute_script("arguments[0].innerHTML= arguments[1]",html_body,my_html)