1

Android WebDriver ライブラリを使用して、Android デバイスでモバイル Web サイトを自動化しようとしています。

スクリプトが Test12345 などの英数字をテキスト フィールドに入力すると、テキスト ボックスに入力テキストとして「TEST!@#$%」と表示されます。これは、大文字で始まるすべての英数字の単語に当てはまります。

しかし、最初の文字を小さな文字または数字にすると、正しい単語が挿入されます。

これが私が使用しているコードです(同じシナリオがテキストボックスフィールドで発生します)

driver.get("http://www.google.com");
WebElement searchBox = driver.findElement(By.name("q"));
searchBox.sendKeys("Test12345");

それはバグですか、それとも何か不足していますか?

4

2 に答える 2

1

これはバグのようです。回避策として、文字列の前に任意の文字(UTF-8のNULL U+E000または"\xEE \ x80 \ x80"を除く)を入力できます。たとえば、2つのSHIFT(UTF-8ではU+E008または"\xEE \ x80 \ x88")文字、またはUTF-8では1つのCLEAR(U+E005または"\xEE \ x80 \ x85")を送信して入力を開始できます。キャラクター。印刷できないものは何でも、その後に文字列を入力します。

于 2012-11-09T08:54:26.147 に答える
0

参考: バグがまだ存在することを確認しました。なぜそれが発生しているのかを理解できるかどうかを確認するために、Android Webdriver コードを調べています。私にはいくつかのアイデアがあります。それは次のいずれかになる可能性があります。

java/client/src/org/openqa/selenium/android/library/AndroidKeys.java 
java/client/src/org/openqa/selenium/android/library/EventSender.java
java/client/src/org/openqa/selenium/Keys.java

Selenium-Webdriver と Android 間のキーのマッピングに関連しています。

Ivan が言及したものと同様の別の回避策を見つけました。私の場合は、テキストを 2 つの部分に分割します。最初の大文字の文字はT、sendKeys を使用して送信します。次に、残りのテキストを送信します。est12345

searchBox.sendKeys("T");
searchBox.sendKeys("est12345");

醜い、必要ではありませんが、余分な (印刷できない) 文字を送信する必要のない実用的なオプションです。

于 2013-04-13T14:16:33.703 に答える