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,14 +43,29 @@ When /^(?:|I )follow "([^"]*)"(?: within "([^"]*)")?$/ do |link, selector| | ||
43 | click_link(link, :match => :prefer_exact) | 43 | click_link(link, :match => :prefer_exact) |
44 | rescue Selenium::WebDriver::Error::UnknownError => selenium_error | 44 | rescue Selenium::WebDriver::Error::UnknownError => selenium_error |
45 | if selenium_error.message.start_with? 'Element is not clickable at point' | 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 | warn "#{selenium_error.message}\n\n"\ | 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 | else | 69 | else |
55 | raise selenium_error | 70 | raise selenium_error |
56 | end | 71 | end |