Use property instead of execute_script

This commit is contained in:
Thomas Walpole 2018-09-12 09:34:30 -07:00
parent 979e29d4d2
commit 18a7516de8
3 changed files with 5 additions and 4 deletions

View File

@ -14,9 +14,9 @@ class Capybara::Selenium::Node
end end
end end
def draggable? def html5_draggable?
# Workaround https://github.com/SeleniumHQ/selenium/issues/6396 # Workaround https://github.com/SeleniumHQ/selenium/issues/6396
driver.evaluate_script('arguments[0]["draggable"]', self) == true native.property('draggable')
end end
MOUSEDOWN_TRACKER = <<~JS MOUSEDOWN_TRACKER = <<~JS

View File

@ -15,7 +15,7 @@ class Capybara::Selenium::ChromeNode < Capybara::Selenium::Node
end end
def drag_to(element) def drag_to(element)
return super unless draggable? return super unless html5_draggable?
html5_drag_to(element) html5_drag_to(element)
end end

View File

@ -1,4 +1,5 @@
# frozen_string_literal: true # frozen_string_literal: true
require 'capybara/selenium/extensions/html5_drag' require 'capybara/selenium/extensions/html5_drag'
class Capybara::Selenium::MarionetteNode < Capybara::Selenium::Node class Capybara::Selenium::MarionetteNode < Capybara::Selenium::Node
@ -57,7 +58,7 @@ class Capybara::Selenium::MarionetteNode < Capybara::Selenium::Node
end end
def drag_to(element) def drag_to(element)
return super unless (browser_version >= 62.0) && draggable? return super unless (browser_version >= 62.0) && html5_draggable?
html5_drag_to(element) html5_drag_to(element)
end end