私はOutsystem for UIを使用しているWebアプリケーションを持っています。だから、ファイルアップロードボタンファイルをアップロードするために使用ので、「ファイル」= =タイプ「提出」とないタイプのセレンコードですselenium webdriverを使用してファイルをアップロードするRobot APIまたはセレンコマンド送信キーを使用しないで
driver.findElement(By.id("browse")).sendKeys("/path/to/the/file");
は私のために働いていません。私は時々正常に動作しますが、フォーカスがウィンドウから削除されているため、ほとんどの時間を失敗しているロボットAPI用のコードだけでなく
WebElement ele = driver.findElement(By.id("Browse"));
ele.click();
StringSelection ss = new StringSelection(FilePath);
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
Thread.sleep(500);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
を試してみました。私のスクリプトは長い間実行されます。そのようなシナリオでは常にウィンドウに焦点を当てておくのは実現可能なアイデアではありません。誰かが私にセレンのアップロードファイルの処理に取り組む他の方法を教えてもらえますか?
ファイルをアップロードする前に、明示的に待機を追加してからコードを実行してみてください。 –
@jainishkapadia明示的に何を待つのですか?私はロボットが定義される前に、私は入力をクリックした後、いくつかの待機があります。しかし、ファイルのアップロードウィンドウが開いたら、私はそれを待つのですか?アップロードウィンドウに焦点を当てるコードはありますか? –
'' HTML 'を共有する –