2014-02-10 99 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'呢? –