当我尝试使用 Jquery 上传文件时抛出错误

时间:2021-04-11 19:26:18

标签: java jquery selenium automation

我的代码抛出这个错误:

<块引用>

org.openqa.selenium.ElementNotInteractableException:元素不可交互:无法在“HTMLInputElement”上设置“value”属性:此输入元素接受文件名,该文件名只能以编程方式设置为空字符串。 (会话信息:chrome=89.0.4389.114)

public expenseRequestPage clickToElement() {
  JavascriptExecutor jse = (JavascriptExecutor) driver;
  URL jqueryUrl = Resources.getResource("jquery-1.8.2.min.js");
  String jqueryText = null;

  try {
    jqueryText = Resources.toString(jqueryUrl, Charsets.UTF_8);
  } catch (IOException e) {
    e.printStackTrace();
  }

  jse.executeScript(jqueryText);
  jse.executeScript("$(\"input[id$='fafa']\").click()");
  jse.executeScript("$(\"input[id$='fafa']\").val(\"C:\\Users\\Gayathri\\Documents\\EBPAutomation\\WBPTest\\src\\test\\resources\\FERPA.docx\")");
  return this;
}

1 个答案:

答案 0 :(得分:1)

当您尝试使用 Selenium 将文件从您的计算机上传到站点时,您没有使用 JavaScript 注入。在应该将文件上传到站点的元素上使用 element.sendKeys。

 WebDriverWait wait = new WebDriverWait(browser, 10);
 WebElement elementToFind = wait.until(ExpectedConditions.
 presenceOfElementLocated(By.id(elementId)));
 elementToFind.sendKeys(keys);

在上面的例子中,keys 参数应该保存文件的路径。