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
def draggable?
def html5_draggable?
# Workaround https://github.com/SeleniumHQ/selenium/issues/6396
driver.evaluate_script('arguments[0]["draggable"]', self) == true
native.property('draggable')
end
MOUSEDOWN_TRACKER = <<~JS

View File

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

View File

@ -1,4 +1,5 @@
# frozen_string_literal: true
require 'capybara/selenium/extensions/html5_drag'
class Capybara::Selenium::MarionetteNode < Capybara::Selenium::Node
@ -57,7 +58,7 @@ class Capybara::Selenium::MarionetteNode < Capybara::Selenium::Node
end
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)
end