2014-02-10 70 views
0

我想爲郵箱應用程序構建一些自動化測試,並試圖附加一個文件。我讀過所有從以前的帖子的文件,並能拿出這樣的:使用硒webdriver上傳文件

public void I_attach_a_file_that_exceeds_the_limit() throws Throwable { 

    WebElement attachFile = driver.findElement(By.id("attachment")); 
    File f = new File("C:\\coop-provider-swm-specs\\src\\test\\resources\\attachments\\20481kb.txt"); 
    attachFile.sendKeys(f.getCanonicalPath()); 

} 

這樣做的問題是,它非常重視該文件不是真正的文件。附加的文件是空白的(不知道這是如何工作的)。我需要附加的文件是一個大文件,我需要這樣做才能驗證用戶未超出允許的附件限制。

+0

當您嘗試通過錄制宏生成的代碼,會發生什麼? – admdrew

+0

如果您只需要路徑,爲什麼要創建File對象? – javajavajava

+0

admdrew,這些自動化測試是使用java爲硒webdriver開發的,我不相信錄製宏將適用(糾正我,如果我錯了)。 – vslat

回答

1

變化:

attachFile.sendKeys(f.getCanonicalPath()); 

要:

attachFile.sendKeys(f.getCanonicalPath()).submit(); 
+0

我能夠使用此行附加文件:attachFile.sendKeys(「C:\\ workspace-ecweb \\ coop-provider-swm-specs \\ src \\ main \\ resources \\附件\\ 20481kb.txt「);但我試圖解決一個相對路徑,你上面提出的建議不起作用。 – vslat

+0

顯然這隻適用於絕對路徑。 – vslat

+0

那麼爲什麼不直接使用'getAbsolutePath'而不是'getCanonicalPath'呢? –