2

我想在具有 Tinymce 编辑器的页面中填写文本,以便使用 Cucumber 和 selenium 驱动程序进行功能自动化测试。我能够打开图像对话框,但无法填写其中的文本字段。我知道 TinyMce 有一个嵌入的 Iframe 标签持有其他html。我使用了以下步骤,但不起作用。

When /^I fill in the xpath "([^"]*)" with "([^"]*)"$/ do |xpath, value|
  find(:xpath, xpath).set 'value'
end

When /^I fill in "([^"]*)" with "([^"]*)"$/ do |field, value|
  fill_in(field, :with => value)
end

我得到一个错误作为Unable to find xpath图像的 PFA 以供参考。在此处输入图像描述

4

4 回答 4

0

我认为你应该切换到 chrome 并使用这里的方法:如何用 capybara 和 selenium 填充 tinymce-rails 编辑器?

看起来firefox对此有一个已知的错误。

于 2013-02-26T07:35:34.817 回答
0

这对我有用....

When ^I enter (.+) in textbox of tinymce iframe having id as (.+)$ do |any_details,tiny_id|
  within_frame("#{tiny_id}") do
    fill_in("image_name", :with =>any_details)
  end  
end

此外,要在编辑器中选择整个文本进行自动化,请使用:c

When ^I select the entire textarea content in the editor$ do
  evaluate_script("tinyMCE.activeEditor.selection.select(tinyMCE.activeEditor.getBody(), true);")
end
于 2013-02-26T10:50:00.923 回答
0

这对我有用:

page.execute_script('tinymce.get("my_element").setContent("updated content");')
于 2019-06-24T19:58:05.330 回答
0

尝试这个:

When /^I fill in "([^"]*)" with "([^"]*)"$/ do |field, value|
  sleep 0.5 until page.evaluate_script("tinyMCE.get('#{field}') !== null")
  js = "tinyMCE.get('#{field}').setContent('#{val}')"
  page.execute_script(js)
end

作为参考,请查看此要点

于 2016-12-02T16:42:01.910 回答