如何将文本发送到页面源中的富文本编辑器
How to send text to the Rich Text Editor found in page source
谁能帮我找到 'Rich Text Editor' 中的 textarea。正在为那个问题而苦苦挣扎,找不到解决方案。
尝试过这个(在其他尝试中):
List<WebElement> messageBody = driver.findElements(By.xpath("//body[@class='cke_editable cke_editable_themed cke_contents_ltr cke_show_borders']/p"));
messageBody.get(0).sendKeys("Vamos con una apuesta para esta");
下面是屏幕截图以及附加的页面源代码。
先感谢您
这是部分页面源代码:
<form role="form" id="user_message_form">
<div class="form-body">
<div class="row">
<div class="form-group col-md-12">
<textarea id="user_message_editor" name="continut_mesaj" class="ckeditor form-control" rows="12" minlength="2" style="visibility: hidden; display: none;"></textarea>
<div id="cke_user_message_editor" class="cke_210 cke cke_reset cke_chrome cke_editor_user_message_editor cke_ltr cke_browser_webkit" dir="ltr" lang="en" role="application" aria-labelledby="cke_user_message_editor_arialbl">
<div class="cke_inner cke_reset" role="presentation">
<span id="cke_210_top" class="cke_top cke_reset_all" role="presentation" style="height: auto; user-select: none;"><span id="cke_218" class="cke_voice_label">Editor toolbars</span>
<div id="cke_210_contents" class="cke_contents cke_reset" role="presentation" style="height: 200px;"><span id="cke_303" class="cke_voice_label">Press ALT 0 for help</span><iframe src="" frameborder="0" class="cke_wysiwyg_frame cke_reset" style="width: 866px; height: 100%;" title="Rich Text Editor, user_message_editor" aria-describedby="cke_303" tabindex="0" allowtransparency="true"></iframe></div>
<iframe src="" frameborder="0" class="cke_wysiwyg_frame cke_reset" style="width: 866px; height: 100%;" title="Rich Text Editor, user_message_editor" aria-describedby="cke_303" tabindex="0" allowtransparency="true"></iframe>
#document
<html dir="ltr" lang="en"><head><title data-cke-title="Rich Text Editor, user_message_editor">Rich Text Editor, user_message_editor</title><style data-cke-temp="1">html{cursor:text;*cursor:auto}
<head>...</head>
<body contenteditable="true" class="cke_editable cke_editable_themed cke_contents_ltr cke_show_borders" spellcheck="false"><p><br></p></body>
HTML 中的 快照 与文本 [= 之间存在差异41=]你已经提供了。
如果Rich Text Editor
不在任何<iframe>
中,您可以使用以下解决方案:
WebElement messageBody = driver.findElement(By.xpath("//body[@class='cke_editable cke_editable_themed cke_contents_ltr cke_show_borders']/p"));
messageBody.click();
messageBody.sendKeys("Vamos con una apuesta para esta");
如果Rich Text Editor
在具有属性的<iframe>
内class="cke_wysiwyg_frame cke_reset" 你必须先切换到想要的 iframe 如下:
new WebDriverWait(driver, 20).until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.xpath("//iframe[@class='cke_wysiwyg_frame cke_reset']")));
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//body[@class='cke_editable cke_editable_themed cke_contents_ltr cke_show_borders']/p"))).click();
messageBody.sendKeys("Vamos con una apuesta para esta");
谁能帮我找到 'Rich Text Editor' 中的 textarea。正在为那个问题而苦苦挣扎,找不到解决方案。 尝试过这个(在其他尝试中):
List<WebElement> messageBody = driver.findElements(By.xpath("//body[@class='cke_editable cke_editable_themed cke_contents_ltr cke_show_borders']/p"));
messageBody.get(0).sendKeys("Vamos con una apuesta para esta");
下面是屏幕截图以及附加的页面源代码。
先感谢您
这是部分页面源代码:
<form role="form" id="user_message_form">
<div class="form-body">
<div class="row">
<div class="form-group col-md-12">
<textarea id="user_message_editor" name="continut_mesaj" class="ckeditor form-control" rows="12" minlength="2" style="visibility: hidden; display: none;"></textarea>
<div id="cke_user_message_editor" class="cke_210 cke cke_reset cke_chrome cke_editor_user_message_editor cke_ltr cke_browser_webkit" dir="ltr" lang="en" role="application" aria-labelledby="cke_user_message_editor_arialbl">
<div class="cke_inner cke_reset" role="presentation">
<span id="cke_210_top" class="cke_top cke_reset_all" role="presentation" style="height: auto; user-select: none;"><span id="cke_218" class="cke_voice_label">Editor toolbars</span>
<div id="cke_210_contents" class="cke_contents cke_reset" role="presentation" style="height: 200px;"><span id="cke_303" class="cke_voice_label">Press ALT 0 for help</span><iframe src="" frameborder="0" class="cke_wysiwyg_frame cke_reset" style="width: 866px; height: 100%;" title="Rich Text Editor, user_message_editor" aria-describedby="cke_303" tabindex="0" allowtransparency="true"></iframe></div>
<iframe src="" frameborder="0" class="cke_wysiwyg_frame cke_reset" style="width: 866px; height: 100%;" title="Rich Text Editor, user_message_editor" aria-describedby="cke_303" tabindex="0" allowtransparency="true"></iframe>
#document
<html dir="ltr" lang="en"><head><title data-cke-title="Rich Text Editor, user_message_editor">Rich Text Editor, user_message_editor</title><style data-cke-temp="1">html{cursor:text;*cursor:auto}
<head>...</head>
<body contenteditable="true" class="cke_editable cke_editable_themed cke_contents_ltr cke_show_borders" spellcheck="false"><p><br></p></body>
HTML 中的 快照 与文本 [= 之间存在差异41=]你已经提供了。
如果
Rich Text Editor
不在任何<iframe>
中,您可以使用以下解决方案:WebElement messageBody = driver.findElement(By.xpath("//body[@class='cke_editable cke_editable_themed cke_contents_ltr cke_show_borders']/p")); messageBody.click(); messageBody.sendKeys("Vamos con una apuesta para esta");
如果
Rich Text Editor
在具有属性的<iframe>
内class="cke_wysiwyg_frame cke_reset" 你必须先切换到想要的 iframe 如下:new WebDriverWait(driver, 20).until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.xpath("//iframe[@class='cke_wysiwyg_frame cke_reset']"))); new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//body[@class='cke_editable cke_editable_themed cke_contents_ltr cke_show_borders']/p"))).click(); messageBody.sendKeys("Vamos con una apuesta para esta");