Commit 946300125782da84533147e0f834adb6eafb0ab5
1 parent
d34432ad
Exists in
master
and in
14 other branches
web_steps: retry filling in tinyMCE for up to 5 seconds
Depending on timing trying to fill a tinyMCE control will fail with `tinymce.editors.article_body is undefined` (Selenium::WebDriver::Error::JavascriptError), probably because at the point we try to interact with the editor it is still being loaded by the browser. Because of that in case of failure we sleep for 1 second and try again at most 5 times.
Showing
1 changed file
with
12 additions
and
1 deletions
Show diff stats
features/step_definitions/web_steps.rb
| ... | ... | @@ -277,7 +277,18 @@ Then /^display "([^\"]*)"$/ do |element| |
| 277 | 277 | end |
| 278 | 278 | |
| 279 | 279 | Then /^I fill in tinyMCE "(.*?)" with "(.*?)"$/ do |field, content| |
| 280 | - execute_script("$(tinymce.editors['#{field}'].setContent('#{content}'))") | |
| 280 | + n = 0 | |
| 281 | + begin | |
| 282 | + execute_script("tinymce.editors['#{field}'].setContent('#{content}')") | |
| 283 | + rescue Selenium::WebDriver::Error::JavascriptError | |
| 284 | + n += 1 | |
| 285 | + if n < 5 | |
| 286 | + sleep 1 | |
| 287 | + retry | |
| 288 | + else | |
| 289 | + raise | |
| 290 | + end | |
| 291 | + end | |
| 281 | 292 | end |
| 282 | 293 | |
| 283 | 294 | Then /^there should be a div with class "([^"]*)"$/ do |klass| | ... | ... |