我的代码抛出这个错误:
<块引用>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;
}
答案 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 参数应该保存文件的路径。