Skip to content

Commit a76e4a8

Browse files
committed
Fix emoji sending in headless chrome
1 parent a4be186 commit a76e4a8

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

lib/capybara/selenium/nodes/chrome_node.rb

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -78,12 +78,18 @@ def send_keys(*args)
7878
.each do |contains_emoji, inputs|
7979
if contains_emoji
8080
inputs.join.grapheme_clusters.chunk { |gc| gc.match?(/\p{Emoji Presentation}/) }
81-
.each do |emoji, clusters|
82-
if emoji
83-
driver.send(:execute_cdp, 'Input.insertText', text: clusters.join)
84-
else
85-
super(clusters.join)
86-
end
81+
.each do |_emoji, clusters|
82+
# For non-headless we can send non-emoji normally and then send emoji via CDP
83+
# thereby getting key events and emoji. Unfortunately that doesn't work for
84+
# headless chrome currently so just send via cdp
85+
driver.send(:execute_cdp, 'Input.insertText', text: clusters.join)
86+
87+
# .each do |emoji, clusters|
88+
# if emoji
89+
# driver.send(:execute_cdp, 'Input.insertText', text: clusters.join)
90+
# else
91+
# super(clusters.join)
92+
# end
8793
end
8894
else
8995
super(*inputs)

0 commit comments

Comments
 (0)