Skip to content

Instantly share code, notes, and snippets.

@twalpole
Created October 5, 2019 16:00
Show Gist options
  • Save twalpole/f13bea888fdbd58bf70924fa3f5e9031 to your computer and use it in GitHub Desktop.
Save twalpole/f13bea888fdbd58bf70924fa3f5e9031 to your computer and use it in GitHub Desktop.
Testing :hover behavior
require 'bundler/inline'
gemfile do
source 'https://rubygems.org'
gem 'capybara'
gem 'puma'
gem 'selenium-webdriver'
gem 'webdrivers'
end
require 'selenium-webdriver'
require "capybara/dsl"
html = DATA.read
app = proc { |env| [200, { "Content-Type" => "text/html" }, [html] ] }
%i[selenium_chrome selenium_chrome_headless].each do |driver|
puts "Using #{driver}"
sess = Capybara::Session.new(driver, app)
sess.visit('/')
sess.assert_no_text('hovering')
3.times do
sess.find('#hover1').hover
sess.assert_no_text('hovering2')
sess.assert_text('hovering1')
sess.find('#hover2').hover
sess.assert_no_text('hovering1')
sess.assert_text('hovering2')
end
end
__END__
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
<style>
div p { display: none }
div:hover p { display: inline }
</style>
</head>
<body>
<div id="hover1">
Hover1
<p>hovering1</p>
</div>
<div id="hover2">
Hover2
<p>hovering2</p>
</div>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment