我在Vaadin中创建了一个保存按钮和一个文本字段。保存按钮状态(启用/禁用)通过ValueChangeListener绑定到输入的文本字段。当textfield为空时,应禁用保存按钮,否则应启用它。
它在实时测试中工作正常,但Selenium没有正确设置文本。我可以看到Selenium设置了文本输入,但是没有启用保存按钮。
new Actions(getDriver()).moveToElement(wrappedElement)
.click()
.sendKeys(SELECT_ALL_SHORTCUT, Keys.DELETE)
.sendKeys(wrappedElement, text)
.sendKeys(Keys.TAB)
.moveByOffset(1, 1)
.perform();
我尝试了很多不同的方法来设置文本,我可以在浏览器中看到文本已设置,但保存按钮状态始终不会改变,至少它有时会起作用。
答案 0 :(得分:0)
未触发textField上的焦点事件,因此在该时刻未正确设置值。触发它的最简单方法是在检查保存按钮之前执行一些其他操作,例如,您可以在其他文本字段上执行click()
,这样您的textField将失去焦点并且文本将被正确存储。
另一种选择是一些javascript函数,它将触发此事件,但这是更复杂的解决方案,取决于您的页面特定实现。