【问题标题】:webdriverio 'setValue' to an input field throws error InvalidElement Statewebdriverio 'setValue' 到输入字段会引发错误 InvalidElement State
【发布时间】:2016-06-07 07:47:41
【问题描述】:
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]:错误未知远程端发送未知状态代码。 RuntimeError:无效元素状态:元素必须是用户可编辑的才能清除它。

截图:

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

【问题讨论】:

    标签: javascript jquery selenium mocha.js webdriver-io


    【解决方案1】:

    在这种情况下,您应该在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,如果它消失了..

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

    【讨论】:

    • 对于 SendKeys 选项:UnknownError 处理命令时发生未知的服务器端错误。未知错误:无法聚焦元素(会话信息:chrome=49.0.2623.75)(驱动程序信息:chromedriver=2.21.371459(36d3d07f660ff2bc1bf28a75d1cdabed0983e7c4),平台=Mac OS X 10.11.4 x86_64)(警告:服务器未提供任何堆栈跟踪信息) [08:52:36]: ERROR Unknown Remote end send an unknown status code.
    • 让我试试第二个选项-
    • 你能告诉我元素是否被启用或者你想在哪里设置值......作为异常抛出......这意味着没有关注这个元素......你需要点击在设置值之前在此元素上..
    • @Varam 不客气...如果您对答案满意,请不要忘记接受答案...:)
    猜你喜欢
    • 2021-07-29
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    • 2019-04-18
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多