diff --git a/CHANGELOG.md b/CHANGELOG.md index 340018ff..ef4b9ac8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,7 +13,7 @@ - `Ferrum::Frame#frame_element` returns the element in which the window is embedded [#524] - `Ferrum::Page#start_screencast` starts sending frames to record screencast [#494] - `Ferrum::Page#stop_screencast` stops sending frames [#494] -- `Ferrum::Browser#new(incognito: false)` wether to create an incognito profile for the browser startup window, `true` by default. +- `Ferrum::Browser#new(incognito: false)` whether to create an incognito profile for the browser startup window, `true` by default. ### Changed diff --git a/lib/ferrum/node.rb b/lib/ferrum/node.rb index e5a71a08..b09e678f 100644 --- a/lib/ferrum/node.rb +++ b/lib/ferrum/node.rb @@ -76,6 +76,7 @@ def click(mode: :left, keys: [], offset: {}, delay: 0) when :double page.mouse.move(x: x, y: y) page.mouse.down(modifiers: modifiers, count: 2) + sleep(delay) page.mouse.up(modifiers: modifiers, count: 2) when :left page.mouse.click(x: x, y: y, modifiers: modifiers, delay: delay) diff --git a/spec/mouse_spec.rb b/spec/mouse_spec.rb index 4f4f0f62..e823bbbc 100644 --- a/spec/mouse_spec.rb +++ b/spec/mouse_spec.rb @@ -226,22 +226,5 @@ end.to raise_error(Ferrum::MouseEventFailed) end end - - context "double click tests" do - before do - browser.go_to("/double_click_test") - end - - it "double clicks properly" do - browser.resize(width: 200, height: 200) - log = browser.at_css("#log") - - instructions = %w[one four one two three] - instructions.each do |instruction| - browser.at_css("##{instruction}").base.double_click - expect(log.text).to eq(instruction) - end - end - end end end diff --git a/spec/node_spec.rb b/spec/node_spec.rb index 17a5c360..061edf49 100644 --- a/spec/node_spec.rb +++ b/spec/node_spec.rb @@ -111,6 +111,20 @@ expect(page.current_url).to eq(base_url("/")) end end + + context "can double click" do + before { page.go_to("/double_click_test") } + + it "double clicks properly" do + log = browser.at_css("#log") + + instructions = %w[one four one two three] + instructions.each do |instruction| + browser.at_css("##{instruction}").click(mode: :double, delay: 0.05) + expect(log.text).to eq(instruction) + end + end + end end describe "#at_xpath" do diff --git a/spec/support/views/double_click_test.erb b/spec/support/views/double_click_test.erb index 3f724698..d7ef6d56 100644 --- a/spec/support/views/double_click_test.erb +++ b/spec/support/views/double_click_test.erb @@ -27,23 +27,16 @@ }
- - - - + + + +