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

webdriverio 'setValue' to an input field throws error InvalidElement State

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.

(Session info: chrome=49.0.2623.75) (Driver info: chromedriver=2.21.371459 (36d3d07f660ff2bc1bf28a75d1cdabed0983e7c4),platform=Mac OS X 10.11.4 x86_64) (WARNING: The server did not provide any stacktrace information) [09:49:15]: ERROR Unknown Remote end send an unknown status code. RuntimeError: invalid element state: Element must be user-editable in order to clear it.

截图:

此表单是使用 jquery 文本选择器库实现的。还有其他方法可以设置值吗?

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

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 如果它消失了..

希望这对您有所帮助...:)