我正在尝试使用 Selenium 上传文件,但我的输入文件元素是隐藏的。
我隐藏的 HTML 是:
<input id="yui_3_9_0pr3_1_1361897421363_2239" type="file" style="visibility:hidden; width:0px; height: 0px;" multiple="" accept="">
选择文件按钮 HTML 是:
<button id="yui_3_9_0pr3_1_1361897421363_2242" class="yui3-button" tabindex="0" aria-label="Select Files" role="button" type="button" style="width: 100%; height: 100%;">Select Files</button>
我尝试了您建议的相同方法JavascriptExecutor
,但仍然出现异常ElementNotVisible: Element is not currently visible
。
这是我的代码:
WebElement fileInput = driver.findElement(By.xpath(//@input[@type='file']));
System.out.println("h14");
String js = "arguments[0].style.height='auto'; arguments[0].style.visibility='visible';";
((JavascriptExecutor) driver).executeScript(js, fileInput);
System.out.println("h15");
LocalFileDetector detector = new LocalFileDetector();
String path = "//Users//pdua//Desktop//images.jpeg";
// File f = detector.getLocalFile(path);
//((RemoteWebElement)fileInput).setFileDetector(detector);
System.out.println("h16");
//fileInput.sendKeys(f.getAbsolutePath());
fileInput.sendKeys(path);
隐藏的输入文件元素的 XPath 是//input[@type='file']
. 不知道对不对!