Selenium sendKeys(string)方法只发送部分字符串

时间:2014-10-22 15:54:23

标签: java selenium

我使用sendKeys方法将字符串发送到搜索框。问题是 只发送第一对(不同)的密钥。结果是搜索框无法正确过滤内容。以下是我的代码片段:

String currLab = labsInCloud.get(j); //get a lab name from a list
evtFilter_fld.clear(); //clear the filter box
evtFilter_fld.sendKeys(currLab); //send keys to filter box
WebElement selectLab = getDriver().findElement(mainPage_selectLab_i(1)); //select first item from        
                                                                         //filter

所以例如如果currLab =“test lab” 只有currLab的“te”被发送到过滤器框。

编辑:只是添加selectLab选择不正确的项目,因为没有发送全文。

3 个答案:

答案 0 :(得分:1)

我遇到了这个问题,这是我的键盘映射问题。

我的具体情况是通过VNC在桌面环境中运行测试。我使用的是tightvncserver,它正在错误地加载键盘。切换到vnc4server解决了这个问题。

答案 1 :(得分:1)

我遇到了同样的问题。有时在单击按钮之前,只会放入3字符串中的字符。

我添加了以下解决方法:

'blah'.split('').forEach((c) => element.sendKeys(c))

它比一次输入所有内容慢一点,但比常量超时更快,并且有效。

https://github.com/angular/protractor/issues/1511找到了提示(因为它不是量角器问题而被关闭)

您也可以尝试使用javascript方法

String theText = "asdf"    
((JavascriptExecutor) driver).executeScript("arguments[0].value='" + theText + "';", fieldElement);

答案 2 :(得分:0)

看起来我没有给司机足够的时间来发送钥匙。我在尝试选择和项目之前添加了一个睡眠(1000)。现在工作正常。