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 | ... | ... |