【问题标题】:JavascriptExecutor doesn't work properly with SeleniumJavascriptExecutor 不能与 Selenium 一起正常工作
【发布时间】:2020-10-15 19:14:46
【问题描述】:

我使用JavascriptExecutor 输入文本。我的代码sn-p如下

 private void inputWorkDescription(WebDriver driver, int rawNumber) throws IOException, GeneralSecurityException {
        if (!getWorkDescriptionFromSheets(rawNumber).isEmpty()) {
            WebDriverWait wait = new WebDriverWait(driver, WAITING_PERIOD);
            WebElement workDescription = wait.until(ExpectedConditions.visibilityOfElementLocated(
                    By.cssSelector("span.placeholder-decoration.ProseMirror-widget span")));
            JavascriptExecutor executor = (JavascriptExecutor) driver;
            executor.executeScript("arguments[0].click();", workDescription);          // ---WORKS
            executor.executeScript("arguments[0].value='123456';", workDescription);   // --- DOESN'T WORK
            executor.executeScript("arguments[0].setAttribute('value', '" 
+ getWorkDescriptionFromSheets(rawNumber) + "');", workDescription);   // --- DOESN'T WORK
        }
    }

很遗憾,它无法正常工作。我只看到 click 命令执行但没有文本输入。 我尝试了不同的文本输入选项,但它不起作用。

【问题讨论】:

  • 嗨,有几个想法 - 你的 css 标识符是一个跨度。需要输入吗?它还能如何包含该值?...而且,您是否尝试过使用普通的 selenium sendkeys?当 sendkeys 不起作用时,Javascript 是一种正常的解决方法,因为它远离实际的用户操作。
  • 是的,它的文本框和点击工作。我尝试使用标准的 sendKeys 但收到异常:元素不可交互,这就是我使用 JS 的原因。
  • 能否提供html代码?
  • 你是对的。我使用了错误的标识符。

标签: javascript java selenium


【解决方案1】:

我使用了错误的 css 标识符。

我的问题的答案在下面的截图中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-10
    • 2014-07-01
    • 1970-01-01
    • 2016-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多