2014-10-02 102 views
0

我試圖自動將圖像文件上傳到服務器,但我沒有更好的訪問形式(FTP等)。我用Selenium和Chromedriver使用Node.js,並且一切都很順利,直到我需要模擬特殊鍵。我研究了一下,到目前爲止沒有發現任何東西。 Mac的具體答案是可以的。如何在Chromedriver/Selenium中爲Node.js模擬鍵盤事件?

我試圖從另一個答案的地方,但它不是爲我工作:

driver.findElement(webdriver.By.name(uploadName)) 
     .click() 
     .sendKeys(Keys.COMMAND + Keys.SHIFT + 'g') 
     .sendKeys(imgPath) 
     .sendKeys(Keys.RETURN); 

它失敗了,因爲鑰匙是不確定的,但我還沒有碰到過任何其他方式運行,以獲得在該命令。

+0

你需要什麼命令?你在試圖從剪貼板粘貼文件路徑嗎? – Morvader 2014-10-03 10:15:05

+0

具體而言,我需要將鍵發送到文件打開對話框。 CMD + SHIFT + G打開文件路徑對話框,以便我可以發送文件路徑的鍵。 – 2014-10-03 12:27:57

回答

0

經過進一步研究,似乎這是做錯的方法。 Selenium和Chromedriver並不真正支持操作系統級別的交互,但有一種更簡單的方法。

driver.findElement(webdriver.By.name(uploadName)).sendKeys(imgPath); 

這將目標uploadName然後給它傳遞到的SendKeys文件路徑。這繞過了混亂的OS文件對話框。