Commit 67ae703fdd8810f3a305c7b4693919a6afe54c03
Exists in
master
and in
14 other branches
Merge branch 'fix_selenium_click_js' into 'master'
Fix selenium onClick link web step The previous fix at 8064b0da19cedbb3d8089e9fd62e208857aea0ef did not expect links with onClick actions which was specially breaking the category_block feature. See merge request !785
Showing
1 changed file
with
20 additions
and
5 deletions
Show diff stats
features/step_definitions/web_steps.rb
| ... | ... | @@ -43,14 +43,29 @@ When /^(?:|I )follow "([^"]*)"(?: within "([^"]*)")?$/ do |link, selector| |
| 43 | 43 | click_link(link, :match => :prefer_exact) |
| 44 | 44 | rescue Selenium::WebDriver::Error::UnknownError => selenium_error |
| 45 | 45 | if selenium_error.message.start_with? 'Element is not clickable at point' |
| 46 | - href = find_link(link)[:href] | |
| 46 | + link = find_link(link) | |
| 47 | + href = link[:href] | |
| 48 | + onclick = link[:onClick] | |
| 47 | 49 | |
| 48 | 50 | warn "#{selenium_error.message}\n\n"\ |
| 49 | - "Trying to overcome this by redirecting you to the link's href:\n"\ | |
| 50 | - "\t'#{href}'\n\n"\ | |
| 51 | - "Good luck and be careful that this may produce hidden links to work on tests!\n" | |
| 51 | + "Trying to overcome this by:\n" | |
| 52 | 52 | |
| 53 | - visit href | |
| 53 | + onclick_return = true | |
| 54 | + | |
| 55 | + unless onclick.nil? | |
| 56 | + warn "\t* Running onClick JS:\n"\ | |
| 57 | + "\t\t'#{onclick}'\n" | |
| 58 | + onclick_return = page.execute_script onclick | |
| 59 | + end | |
| 60 | + | |
| 61 | + if onclick_return | |
| 62 | + warn "\t* Redirecting you to the link's href:\n"\ | |
| 63 | + "\t\t'#{href}'\n" | |
| 64 | + | |
| 65 | + visit href | |
| 66 | + end | |
| 67 | + | |
| 68 | + warn "\nGood luck and be careful that this may produce hidden links to work on tests!\n" | |
| 54 | 69 | else |
| 55 | 70 | raise selenium_error |
| 56 | 71 | end | ... | ... |