1

我正在尝试使用 Android WebDriver 库在 android 设备上自动化移动网站。

当脚本在文本字段中输入一些字母数字字符(例如 Test12345)时,文本框会显示“TEST!@#$%”作为输入的文本。任何以大写字母开头的字母数字单词都是如此。

但是,如果我将第一个字符设为小字符或数字,则插入正确的单词。

这是我正在使用的代码(在任何文本框字段上都会发生相同的情况)

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

这是一个错误还是我错过了什么?

4

2 回答 2

1

看来这是一个错误。作为一种解决方法,您可以在字符串之前键入任何字符(除了 NULL U+E000 或 UTF-8 中的“\xEE\x80\x80”)。例如,您可以通过发送两个 SHIFT(U+E008 或 UTF-8 中的“\xEE\x80\x88”)字符或一个 CLEAR(U+E005 或 UTF-8 中的“\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 提到的解决方法。我的涉及将文本分成两部分,第一个大写字符,例如 theT并使用 sendKeys 发送它;然后发送其余的文本,例如est12345

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

丑陋,不应该是必要的,而是一个不涉及发送额外(不可打印)字符的实用选项。

于 2013-04-13T14:16:33.703 回答