我的问题是当我尝试使用CKEditor将数据设置到字段时,我在量角器中收到了“元素不可见”的消息。 应用程序正在与AngularJS合作。
def other_controller_method
req = ActionDispatch::Request.new(request.env)
resp = ActionDispatch::Response.new
YourControllerClass.dispatch(:your_controller_method_name, req, resp)
render json: resp.body, status: resp.status
end
如何在量角器测试中使用CKEditor将数据设置(或获取)到字段? HTML代码:
element(by.model("question.translations[lang.locale].answer")).sendKeys("Test answer e2e!!!");
当我尝试这个时
<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>
我收到错误:失败:未知错误:无法读取未定义的属性'setData'
答案 0 :(得分:3)
我找到了解决方案
browser.switchTo().frame(element(by.css('#cke_editor1 iframe')).click().sendKeys("Test answer e2e"));
&#13;
答案 1 :(得分:0)
实施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!!!");
答案 2 :(得分:0)
我通过在标题字段中按名称读取实例来使其工作。
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>