From 8a9c975fc5f58316d9a18b36ea0f773f850252b6 Mon Sep 17 00:00:00 2001 From: Matthew Wilson Date: Tue, 18 Sep 2012 17:35:19 -0700 Subject: [PATCH] https://github.com/jnicklas/capybara/issues/819 Memoize the values returned by tag_name and [] to speed up remote Selenium jobs --- lib/capybara/selenium/node.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/capybara/selenium/node.rb b/lib/capybara/selenium/node.rb index 866c2b50..3c88b2cf 100644 --- a/lib/capybara/selenium/node.rb +++ b/lib/capybara/selenium/node.rb @@ -5,7 +5,8 @@ class Capybara::Selenium::Node < Capybara::Driver::Node end def [](name) - native.attribute(name.to_s) + @attrs = {} + @attrs[name] ||= native.attribute(name.to_s) rescue Selenium::WebDriver::Error::WebDriverError nil end @@ -50,7 +51,7 @@ class Capybara::Selenium::Node < Capybara::Driver::Node end def tag_name - native.tag_name.downcase + @tag_name ||= native.tag_name.downcase end def visible?