ファイルをアップロードする必要があります。手順は次のとおりです。 1. モーダル ウィンドウを呼び出すボタンをクリックします。(Linux ウィンドウにはロケーションバーがありません) 2. 適切なファイルを選択してアップロードします。
どんな助けにも感謝します。Chrome Firefox ドライバーと Java の使用。
これは何度か質問されており、一部の Selenium FAQ にも記載されています。
// assuming driver is a well instantiated WebDriver
WebElement fileInput = driver.findElement(By.xpath("//input[@type='file']"));
fileInput.sendKeys("C:/path/to/file.jpg");
アイデアは、ファイルへのパスを、通常はクリックしてモーダルウィンドウを取得する要素、つまり要素に直接送信することです<input type='file' />
。
Robot クラスで回避策を見つけました
コードは次のとおりです。
try {
Robot robot = new Robot();
robot.delay(3000);
robot.keyPress(KeyEvent.VK_P);
robot.keyRelease(KeyEvent.VK_P);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
} catch (AWTException e) {
e.printStackTrace();
}
モーダル ウィンドウの場合、selenium で autoit を使用することを好みます。autoit は非常に軽量なアプリケーションであり、スクリプトを作成し、コンパイルして exe ファイルを作成し、exe ファイルを Selenium で実行できます。
詳細については、こちらを参照してください。