1

Cucumber と Selenium を使用して contenteditable div での入力をテストしています。(興味があれば、Wikipedia の新しいVisualEditorを参照してください。)

これは、多かれ少なかれ、現在のコードがどのように見えるかです:

When(/^I type (.+)$/) do |text|
  on(VisualEditorPage).content_element.send_keys(text)
end

文字列のタイピングだけでなく、実際のキーボード キーもテストしたいと思っています。これを行う必要があるのは、さまざまな言語とさまざまなキーボード レイアウトでの入力をテストしたいからです。英語キーボードには、キーと文字の間の単純な 1 対 1 のマッピングがありますが、これはすべてのキーボードに当てはまるわけではありません。日本語は非常に極端な例です。いくつかのラテン文字がそこに入力され、ユーザーが目的のものを選択できる可能な日本語のスペルのリストに変換されます。日本語の文字で send_keys を使用するだけでこれをテストするのは、エンド ユーザーが実際に行うことではないため、要点を見逃しています。

より単純なシナリオでは、ビルマ語またはシンハラ語のキーボード レイアウトがオンのときにキーを押すことをテストし、結果のテキストが正しいことをテストします。文字列全体を貼り付けるだけでは、スマート ルールに従って入力中にキーボード レイアウトによって文字の位置が変更されるため、あまり効果的ではありません。

それで、これを可能にするものはSeleniumにありますか?send_keys 'abc'のようなことをする代わりにsend_keys :a_key, :b_key, :c_key

ありがとう!

4

1 に答える 1

2

私はこれを個人的に試したことはありませんが、このドキュメント - selenium.webdriver.common.keysとこのドキュメントLegacy Keyboard Event Propertiesが最初の試みに役立つと思います。

したがって、asend_keys('\u0041\u0042\u0043')は大文字のラテン語 ABC と同等であることが期待されます。

于 2013-09-12T05:39:29.967 に答える