A um tempo atrás alguém postou um comentário aqui no blog perguntando como ele poderia testar a questão do upload de arquivo usando o Selenium.
Bem, pedindo ajuda para o grande sábio Google, encontrei a página (clique aqui) com um trecho de código que reproduzo parte abaixo mostrando como fazer.
Pelo jeito ele somente irá funcionar para o IE pois os demais browser não aceitam que você digite no campo de file. (Me corrijam se eu estiver errado).
Espero que ajude:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | package org.openqa.selenium; import static org.openqa.selenium.Ignore.Driver.CHROME; import static org.openqa.selenium.Ignore.Driver.IPHONE; import static org.openqa.selenium.Ignore.Driver.SELENESE; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.io.PrintWriter; /** * Demonstrates how to use WebDriver with a file input element. * * @author jmleyba@gmail.com (Jason Leyba) */ @Ignore(value = IPHONE, reason = "File uploads not allowed on the iPhone") public class UploadTest extends AbstractDriverTestCase { private static final String LOREM_IPSUM_TEXT = "lorem ipsum dolor sit amet"; private static final String FILE_HTML = "<div>" + LOREM_IPSUM_TEXT + "</div>"; private File testFile; @Override protected void setUp() throws Exception { super.setUp(); testFile = createTmpFile(FILE_HTML); } @JavascriptEnabled @Ignore(value = {CHROME, SELENESE}, reason = "Chrome: File input elements are not supported yet") public void testFileUploading() throws Exception { driver.get(uploadPage); driver.findElement(By.id("upload")).sendKeys(testFile.getAbsolutePath()); driver.findElement(By.id("go")).submit(); driver.switchTo().frame("upload_target"); WebElement body = driver.findElement(By.xpath("//body")); assertEquals("Page source is: " + driver.getPageSource(), LOREM_IPSUM_TEXT, body.getText()); } private File createTmpFile(String content) throws IOException { File f = File.createTempFile("webdriver", "tmp"); f.deleteOnExit(); OutputStream out = new FileOutputStream(f); PrintWriter pw = new PrintWriter(out); pw.write(content); pw.flush(); pw.close(); out.close(); return f; } } |
http://blogblogs.com.br/