使用 Selenium 和 Python 将 html 发送到富文本框时出现问题
Problem with sending html to a rich text box using Selenium and 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ä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, 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:
时遇到的错误
提高exception_class(消息、屏幕、堆栈跟踪)
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)
我正在尝试将非常大的 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, 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:
时遇到的错误提高exception_class(消息、屏幕、堆栈跟踪) 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)