如何在量角器测试中使用 CKEditor 将数据设置为字段?
How can I set data to field with CKEditor in Protractor test?
我的问题是,当我尝试使用 CKEditor 将数据设置到字段中时,我在量角器中收到消息 "element not visible"。
应用程序正在使用 AngularJS。
element(by.model("question.translations[lang.locale].answer")).sendKeys("Test answer e2e!!!");
如何在 Protractor 测试中使用 CKEditor 设置(或获取)数据到字段?
HTML代码:
<div ng-repeat="lang in languages">
<div class="col-md-4">
<div class="input-icon right">
<div ckeditor="CKoptions" ng-model="question.translations[lang.locale].answer"></div>
</div>
</div>
</div>
当我尝试这个时
var value = 'Hello';
browser.executeScript(function (arguments) {
window.CKEDITOR.instances.html_editor.setData(arguments[0]);
}, value);
我收到错误:失败:未知错误:无法读取未定义的 属性 'setData'
执行protractor.ExpectedConditions检查元素的可见性并将数据发送给它。如果您仍然面临同样的问题,请粘贴元素 HTML 代码。以便我能提供帮助。
代码段
var EC=protractor.ExpectedConditions;
var
inputField=element(by.css('div[ckeditor="CKoptions"]'));
inputField.click();
browser.wait(EC.visibilityOf(inputField),8000,'Input filed is not visible');
browser.wait(EC.elementToBeClickable(inputField),8000,'Input filed is not
clickable');
inputField.sendKeys("Test answer e2e!!!");
我找到了解决方案
browser.switchTo().frame(element(by.css('#cke_editor1 iframe')).click().sendKeys("Test answer e2e"));
我通过标题字段中的名称读取实例使其开始工作。
var statamentDes = 'Hello';
browser.executeScript(function (arguments) {
var name = "editor1" // split title to get this
window.CKEDITOR.instances[name].setData(arguments);
}, statamentDes);
<iframe src="" frameborder="0" class="cke_wysiwyg_frame cke_reset" style="width: 100%; height: 100%;" title="Rich Text Editor, editor1" tabindex="0" allowtransparency="true"></iframe>
我的问题是,当我尝试使用 CKEditor 将数据设置到字段中时,我在量角器中收到消息 "element not visible"。 应用程序正在使用 AngularJS。
element(by.model("question.translations[lang.locale].answer")).sendKeys("Test answer e2e!!!");
如何在 Protractor 测试中使用 CKEditor 设置(或获取)数据到字段? HTML代码:
<div ng-repeat="lang in languages">
<div class="col-md-4">
<div class="input-icon right">
<div ckeditor="CKoptions" ng-model="question.translations[lang.locale].answer"></div>
</div>
</div>
</div>
当我尝试这个时
var value = 'Hello';
browser.executeScript(function (arguments) {
window.CKEDITOR.instances.html_editor.setData(arguments[0]);
}, value);
我收到错误:失败:未知错误:无法读取未定义的 属性 'setData'
执行protractor.ExpectedConditions检查元素的可见性并将数据发送给它。如果您仍然面临同样的问题,请粘贴元素 HTML 代码。以便我能提供帮助。
代码段
var EC=protractor.ExpectedConditions;
var
inputField=element(by.css('div[ckeditor="CKoptions"]'));
inputField.click();
browser.wait(EC.visibilityOf(inputField),8000,'Input filed is not visible');
browser.wait(EC.elementToBeClickable(inputField),8000,'Input filed is not
clickable');
inputField.sendKeys("Test answer e2e!!!");
我找到了解决方案
browser.switchTo().frame(element(by.css('#cke_editor1 iframe')).click().sendKeys("Test answer e2e"));
我通过标题字段中的名称读取实例使其开始工作。
var statamentDes = 'Hello';
browser.executeScript(function (arguments) {
var name = "editor1" // split title to get this
window.CKEDITOR.instances[name].setData(arguments);
}, statamentDes);
<iframe src="" frameborder="0" class="cke_wysiwyg_frame cke_reset" style="width: 100%; height: 100%;" title="Rich Text Editor, editor1" tabindex="0" allowtransparency="true"></iframe>