From 8a7ecba3aa1d96cbb16b0440eb2adb2d5416b03f Mon Sep 17 00:00:00 2001 From: Jonas Nicklas Date: Mon, 26 Apr 2010 23:43:18 +0200 Subject: [PATCH] Fix options with quotes under selenium --- lib/capybara/driver/selenium_driver.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/capybara/driver/selenium_driver.rb b/lib/capybara/driver/selenium_driver.rb index 5ce88ae3..226a003e 100644 --- a/lib/capybara/driver/selenium_driver.rb +++ b/lib/capybara/driver/selenium_driver.rb @@ -36,7 +36,7 @@ class Capybara::Driver::Selenium < Capybara::Driver::Base end def select(option) - option_node = node.find_element(:xpath, ".//option[text()='#{option}']") || node.find_element(:xpath, ".//option[contains(.,'#{option}')]") + option_node = node.find_element(:xpath, ".//option[text()=#{Capybara::XPath.escape(option)}]") || node.find_element(:xpath, ".//option[contains(.,#{Capybara::XPath.escape(option)})]") option_node.select rescue options = node.find_elements(:xpath, "//option").map { |o| "'#{o.text}'" }.join(', ') @@ -49,7 +49,7 @@ class Capybara::Driver::Selenium < Capybara::Driver::Base end begin - option_node = node.find_element(:xpath, ".//option[text()='#{option}']") || node.find_element(:xpath, ".//option[contains(.,'#{option}')]") + option_node = node.find_element(:xpath, ".//option[text()=#{Capybara::XPath.escape(option)}]") || node.find_element(:xpath, ".//option[contains(.,#{Capybara::XPath.escape(option)})]") option_node.clear rescue options = node.find_elements(:xpath, "//option").map { |o| "'#{o.text}'" }.join(', ')