簡體   English   中英

如何使用Selenium Java中的機器人類在無頭瀏覽器中上傳文件

[英]How to upload file in headless browser using robot class in selenium java

如何在無頭瀏覽器中使用Selenium Java中的機械手類作為sendkeys()方法上傳文件,在我的情況下不起作用。 我正在使用Firefox和Selenium Web驅動程序Java作為腳本

無需使用Robot類即可使用Selenium Java上傳文件。 剛開始時(1)如果是linux,則將文件上傳到/ tmp文件夾中;如果是Windows OS,則將文件上傳到temp文件夾中,然后,使用以下代碼上傳文件

String path = FILE_UPLOAD_PATH; 
//(Full path with file name from /tmp folder)
driver.findElement(By.id("FILE_INPUT_ID")).sendKeys(path);

它將上傳文件。

注意 :如果不需要釋放內存,請在上傳后從/ tmp文件夾中刪除文件。

public static void setClipboardData(String string) {
    StringSelection stringSelection = new StringSelection(string);
    Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection,null);
}          

setClipboardData(path);
//native key strokes for CTRL, V and ENTER keys

Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);

注意:如果您使用的是無頭瀏覽器(例如chrome或phantomjs),robot類將控制當前窗口並在其中發送路徑。 同樣,如果您使用autoIT,腳本將等待活動窗口出現。 因此顯然腳本將被暫停,並且無法找到下一個元素。


AutoIT腳本

WinWaitActive("Open")
Send(@ScriptDir & "\logo.png")
Send("{ENTER}")

暫無
暫無

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

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