webdriverio'setValue'到输入字段抛出错误InvalidElement State

时间:2016-06-07 07:47:41

标签: javascript jquery selenium mocha webdriver-io

InvalidElementState An element command could not be completed because the element is in an invalid state (e.g. attempting to click a disabled element).
        invalid element state: Element must be user-editable in order to clear it.
  

(会话信息:chrome = 49.0.2623.75)     (驱动程序信息:chromedriver = 2.21.371459(36d3d07f660ff2bc1bf28a75d1cdabed0983e7c4),platform = Mac OS X 10.11.4 x86_64)(警告:服务器未提供任何堆栈跟踪信息)   [09:49:15]:ERROR未知远程端发送未知状态码。   RuntimeError:无效的元素状态:元素必须是用户可编辑的才能清除它。

屏幕截图:

enter image description here

此表单已使用jquery文本选择器库实现。有没有其他方法来设置价值?

1 个答案:

答案 0 :(得分:2)

在这种情况下,您应该在setValue字段中使用input的以下方法: -

WebElement inputEl = driver.findElement(By.xpath("xPath exression"));
inputEl.click();
inputEl.sendKeys(Keys.chord(Keys.CONTROL, "a"), Keys.DELETE, "valuet to set");

如果您想使用JavascriptExecutor,请尝试以下方法: -

JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("arguments[0].click();arguments[0].value='';arguments[0].value=arguments[1];",inputEl,"valuet to set");

<强>被修改..

您需要在设置值之前单击元素以启用此input,如果它已消失..

希望这会对你有所帮助...... :)