2012-10-10 26 views
1

我想使用Android WebDriver庫在Android設備上自動化移動網站。Android WebDriver無法輸入字母數字字符

當腳本在文本框中輸入一些字母數字字符(例如Test12345)時,文本框顯示爲輸入文本中的「TEST!@#$%」。任何以大寫字母開頭的字母數字詞都是如此。

但是,如果我將第一個字符設置爲小字符或數字,則會插入正確的單詞。

這裏是我使用

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

它是一個錯誤還是我失去了一些東西的代碼(同樣的情形發生在任何文本字段)?

回答

1

看來這是一個錯誤。作爲一種解決方法,您可以在字符串之前鍵入任何字符(UTF-8中的NULL U + E000或「\ xEE \ x80 \ x80」字符除外)。例如。您可以通過發送兩個SHIFT(U + E008或UTF-8中的「\ xEE \ x80 \ x88」)字符或一個CLEAR(UTF-8中的U + E005或「\ xEE \ x80 \ x85」)字符。只要不打印,然後輸入你的字符串。

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 

和相關硒的webdriver和Android之間的映射按鍵。

我發現了另一個解決方法,類似於Ivan提到的解決方法。地雷涉及將文本分成兩部分,第一個大寫字母,例如T並使用sendKeys發送它;然後發送文本的其餘部分,例如est12345

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

醜陋的,不應該是必要的,但不涉及額外發送(不可打印)字符的實用服務。

相關問題