Selenium发送不完整的文本

时间:2015-09-11 14:16:34

标签: java selenium selenium-webdriver automation selenium-chromedriver

在使用.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机器上运行,但似乎没有任何效果。

现在我创建了一个解决方法,我一直在验证字符串是否输入正确,并重新键入它,直到它正确,但这会使执行时间增加,我想避免。

2 个答案:

答案 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并查看结果

希望这可能会有所帮助。 艾伦梅希奥 英国伦敦