如何在量角器测试中使用CKEditor将数据设置为字段?

时间:2016-11-08 08:20:39

标签: angularjs ckeditor protractor

我的问题是当我尝试使用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'

3 个答案:

答案 0 :(得分:3)

我找到了解决方案

&#13;
&#13;
browser.switchTo().frame(element(by.css('#cke_editor1 iframe')).click().sendKeys("Test answer e2e"));
&#13;
&#13;
&#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>