我想在一个带有Tinymce Editor的页面中填写文本,用于使用Cucumber和selenium驱动程序进行功能自动化测试。我能够打开图像对话框但无法填写其中的文本字段。我知道TinyMce有一个嵌入式包含其他html的iframe标签。 我使用了以下步骤,但不起作用。
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 of image for refrenece。
答案 0 :(得分:0)
我认为你应该切换到chrome并使用这里的方法:How to fill tinymce-rails editor with capybara and selenium?
看起来firefox有一个知道的错误。
答案 1 :(得分: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
答案 2 :(得分: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
供参考,请查看此gist
答案 3 :(得分:0)
这对我有用:
page.execute_script('tinymce.get("my_element").setContent("updated content");')