Я пытаюсь установить содержимое внутри ckeditor, чтобы быть точным внутри <body>
из <iframe>
, но однажды, когда я переключаюсь на фрейм, система выдает: NoSuchElementException. Я пытался найти элемент по классу или селектором CSS - ни один из них не дал результатов.
Я обнаружил, что проблема заключается в настройке содержимого самого <body>
, и этот пост:
Как получить и установить значение текстового редактора в селене
но я не уверен, как выполнить JavaScript с помощью Atata. Ниже приведены части моего кода.
Страница, где находится <iframe>
:
public class DocumentEditPage : Page<_>
{
[FindById("cke_1_contents")]
//[FindByClass("cke_wysiwyg_frame cke_reset")]
//[FindByIndex(0)]
public Frame<DocumentFramePage, _> ContentSwedish { get; private set;
}
Рамка страницы:
public class DocumentFramePage : Page<_>
{
[FindByClass("cke_editable cke_editable_themed cke_contents_ltr cke_show_borders")]
//[FindByCss("body")]
public TextInput<_> TextBoxEditingContent { get; private set; }
}
Тест:
[Test]
public void SaveContentInsideFrame()
{
string ID = "7";
string valueToBeSet = "TestContent";
Go.To<DocumentsPage>().
Documents.Rows[x => x.Dokument_ID == ID].Edit().
// Refresh page so the content can be visible
RefreshPage().
ContentSwedish.SwitchTo().
TextBoxEditingContent.Clear().
TextBoxEditingContent.Set(valueToBeSet).
SwitchToRoot<DocumentEditPage>().
// Click on Save button
Save();
}
HTML-код страницы:
<div id="cke_1_contents" class="cke_contents cke_reset" role="presentation" style="height: 200px;">
<span id="cke_52" class="cke_voice_label">Press ALT 0 for help</span>
<iframe src="" style="width: 100%; height: 100%;" class="cke_wysiwyg_frame cke_reset" title="Rich Text Editor, Details_0__Content" aria-describedby="cke_52" tabindex="0" allowtransparency="true" frameborder="0"></iframe></div>
<body class="cke_editable cke_editable_themed cke_contents_ltr cke_show_borders" spellcheck="false" contenteditable="true">
<h1>Test</h1>
<p>Test<br></p>
<p>Test<br></p>
<p><br></p>
</body>