我使用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选择不正确的项目,因为没有发送全文。
答案 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)。现在工作正常。