Skip to content

Instantly share code, notes, and snippets.

@adarapata
Last active December 16, 2015 20:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save adarapata/5489487 to your computer and use it in GitHub Desktop.
Save adarapata/5489487 to your computer and use it in GitHub Desktop.
Capybaraでリンク属性の無い要素をクリックさせるmodule、文字列検索対応版(不完全)
# -*- coding: utf-8 -*-
module Capybara
class Session
def mouse_over(dom)
dom = convert_text_to_element(dom, "onmouseover")
execute_trigger(dom, "mouseover")
end
def mouse_click(dom)
dom = convert_text_to_element(dom, "onclick")
execute_trigger(dom, "click")
end
private
def execute_trigger(dom, event)
code = '$("' + dom + '").trigger("' + event + '")'
self.execute_script(code)
end
# テキストで入ってきた場合に、該当するelementのパスを探索して返す。
def convert_text_to_element(text, event)
begin
xpath = find(:xpath, "//*[@#{event}]")
rescue
return text
end
return text unless xpath.text == text
"[#{event}]:contains('#{xpath.text}')"
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment