1

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

4

1 に答える 1