【问题标题】:Selenium Java clear method will not clear the input field?Selenium Java clear 方法不会清除输入字段?
【发布时间】:2021-10-21 17:06:49
【问题描述】:

我今天在验证应用程序中的一些输入字段时遇到了一个小问题。 看起来我们不能调用 selenium java 方法 clear() 来清除输入,我知道我可以遍历字符串并使用 sendKeys(Keys.Backspace)clear 方法应该可以完成工作?

其他人也遇到过同样的问题,你是如何解决这个问题的?

我们的应用基于 Ant 库构建

String hotmarketNameEdit = "ant-input";

    WebElement edit = driver.findElement(By.className(hotmarketNameEdit));
    edit.click();
    edit.clear();

HTML

<input type="text" id="label" class="ant-input ant-input-sm" value="AUTOMATION TEST - Thu Oct 21 09:54:15 MDT 2021" xpath="1">

感谢您的任何意见

【问题讨论】:

    标签: java selenium


    【解决方案1】:

    我个人遇到过很多次这个问题,Selenium .clear() 方法无法正常工作。

    Selenium 社区已意识到此问题,请参阅报告的错误 here - ClearText does not work

    您可以通过上述链接。

    解决方法:

    大部分时间,我尝试将Ctrl + A 模拟为select the text,然后按删除

    如果您使用 Java 作为绑定语言,您可以执行以下操作

    webElement.sendKeys(Keys.CONTROL + "a")
    webElement.sendKeys(Keys.DELETE)
    

    【讨论】:

    • 感谢您的输入,我也沿着这条路线走:) 并且它部分工作,基本上选定的字符串部分可见,其余部分省略。哈哈。这很奇怪。
    【解决方案2】:

    你试过 JavaScriptExecutor 吗?

    JavascriptExecutor jse = (JavascriptExecutor) indexWebDriver;
    jse.executeScript("arguments[0].value=''",edit);
    

    也检查一下这个

    How can I consistently remove the default text from an input element with Selenium?

    【讨论】:

      【解决方案3】:

      您能否尝试一下这个解决方法,在一个命令中同时传递选择和删除关键字

      driver.findElement(By.name("username")).sendKeys(Keys.chord(Keys.CONTROL,"a", Keys.DELETE));
      

      【讨论】:

        猜你喜欢
        • 2022-06-20
        • 2020-04-25
        • 2020-11-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-25
        相关资源
        最近更新 更多