簡體   English   中英

使用Selenium Webdriver上傳文件而無需使用Robot API或Selenium命令發送密鑰

[英]Upload a file using selenium webdriver WITHOUT using Robot API or selenium command send keys

我有一個Web應用程序正在使用Outsystem for UI。 因此,“文件上傳”按鈕的類型為“提交”,而不是類型為“文件”,因此是硒代碼

    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);    

有時效果很好,但是大多數時候都失敗了,因為焦點已從窗口移開了。 我的腳本將運行很長時間,在這種情況下,始終將焦點始終放在窗口上是不可行的。 有人可以建議我其他方法來解決Selenium中的上傳文件過程嗎?

我在這里了解到的是您無法等到彈出窗口彈出時出現,因為我們無法明確等待窗口彈出,因此在啟動機器人之前,我通過放置Thread.sleep(2000)解決了此問題類,以便可以在我們開始使用它之前顯示彈出窗口。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM