在使用.sendKeys(text)
时,我遇到了Selenium的问题。在自动化过程中,有时selenium会向浏览器发送不完整的字符串,这会导致创建不正确的搜索。
即。我想输入“MY DROP”,它会输入“Y DROP”或“ROP”。
它并不总是以相同的方式输入,因此有时可能会丢失2个字母,有时整个单词都会丢失 这只发生在下拉列表中,我有一个处理下拉选择的特定方法,因为我们使用的是角度我不能使用selenium select下拉方法。 我已经尝试设置Thread.Sleeps并等待下拉选择,但似乎没有任何工作,目前这是我用来选择一个值:
public void select(String item) {
waitTillClicable();
WebElement element = getElement();
openDropDown(element);
element.sendKeys(item);
waitResultLoad();
selectResult(element);
}
此代码在上周完美运行。我认为它有一些东西要处理新的Chrome版本45,就像之前没有发生一样。我也尝试使用不同的chromedriver版本,并在Linux机器上运行,但似乎没有任何效果。
现在我创建了一个解决方法,我一直在验证字符串是否输入正确,并重新键入它,直到它正确,但这会使执行时间增加,我想避免。
答案 0 :(得分:-1)
为什么使用.sendKeys()
选择SELECT
中的值?使用提供的方法进行选择:.selectByIndex(int)
,.selectByValue(String)
或.selectByVisibleText(String)
。一些例子......
Select test = new Select(driver.findElement(By.id("dropdown")));
test.selectByIndex(1);
test.selectByValue("myValue");
test.selectByVisibleText("VisibleText");
答案 1 :(得分:-1)
查看是否在Firefox驱动程序或IE驱动程序上发生 另一件事是方法签名是
public void sendKeys(CharSequence... value)
你能尝试发送它像sendKeys(“我的”,“DROP”); instad并查看结果
希望这可能会有所帮助。 艾伦梅希奥 英国伦敦