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']
. それが正しいかどうかはわかりません!