2013-04-25 60 views
4

我擁有的測試用例之一是將文件上傳到應用程序。 Witouth網格可以通過創建僞造文件並獲取文件的絕對路徑並填充輸入字段並單擊上傳來輕鬆完成。但是,當我使用網格時,文件不在承載節點的機器上。無論如何要麼將文件發送到節點,要麼告訴節點創建文件並獲取絕對路徑。在硒網格上創建並上傳文件

回答

0

當您在本地機器上創建文件時,您可以以正常方式執行此操作。見下文,

File file = new File("\\\\00.00.00.00\\c$\\somefile.txt"); 
file.createNewFile(); 

這將創建一個名爲somefile.txt在「C」在遠程機器上的驅動文件。將IP地址更改爲遠程機器。

+2

嗯..但是當我在硒網格中運行它時,節點有點隨意嗎?我不知道它要運行哪個節點 – danggrianto 2013-05-06 18:25:39

+0

您可以編寫一個方法,並在需要的測試方法中調用它。它獨立於節點。 – user2087450 2013-05-07 11:38:53

+0

除非遠程機器不是Windows,因此既沒有'C'驅動器也沒有安裝samba – 2014-04-07 03:13:08

9

一旦你知道如何,它實際上很簡單,只需設置一個本地文件檢測器。

import org.openqa.selenium.remote.LocalFileDetector 
import org.openqa.selenium.remote.RemoteWebDriver 

WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), DesiredCapabilities.firefox()); 
driver.setFileDetector(new LocalFileDetector()) 

然後只是正常上傳,Selenium會通過電線將文件發送到節點。

+0

是否在節點或本地創建了文件? – danggrianto 2013-05-06 18:26:19

+1

在上面的例子中,文件將在運行測試的機器上。然後文件將通過電線發送到網格,然後發送到節點,以便節點可以上傳文件。 – Ardesco 2013-05-06 18:47:27

+2

對開發人員的幽默印象深刻 - 只有兩個FileDetector實現:一個是提到的LocalFileDetector,另一個是UselessFileDetector「從來沒有找到任何東西」:) – 2014-04-08 05:09:40