使用sendKeys文件上传selenium

时间:2015-10-16 00:10:51

标签: java selenium file-upload automation sendkeys

我的情况是我正在自动测试文件上传功能。现在,自动化ci在另一台机器/盒子上工作,浏览器在另一台机器上打开,用于自动化测试。我能够在jar中打包(添加要上传的测试输入文件)。但是jar如上所述在另一台机器中,浏览器在另一台机器中。由于浏览器机器没有固定并在自动化运行时获取,因此如何在运行浏览器的机器上提供我需要上传的输入文件。

我尝试从jar中提取文件后复制该文件,但显然它不会被复制到浏览器中,也不会从上传的位置复制。

是否可以在浏览器计算机中提供该文件?

2 个答案:

答案 0 :(得分:0)

您可以做的一件事就是将上传文件放入共享文件夹中,该文件夹可以从所有正在运行的计算机上访问。并从共享文件夹中提供文件位置。 您可以将sendKeys命令提供给上传字段,如下所示

upload_textfield.sendKeys("\\shared_Folder\upload.txt")

答案 1 :(得分:0)

静态WebDriver驱动程序;     public static void main(String [] args)抛出InterruptedException,FindFailed {

    System.setProperty("webdriver.gecko.driver", "E:\\doftware\\geckodriver-v0.10.0-win64\\geckodriver.exe");
    driver =new FirefoxDriver();
    driver.get("https://accounts.google.com/ServiceLogin?service=mail&passive=true&rm=false&continue=https://mail.google.com/mail/&ss=1&scc=1&ltmpl=default&ltmplcache=2&emr=1&osid=1");

    driver.findElement(By.id("Email")).sendKeys("emailaddress");
    driver.findElement(By.id("next")).click();
    Thread.sleep(500);
    driver.findElement(By.id("Passwd")).sendKeys("Password");
    driver.findElement(By.id("signIn")).click();
    Thread.sleep(5000);
    driver.findElement(By.xpath("//div[@class='T-I J-J5-Ji T-I-KE L3']")).click();
    Thread.sleep(500);
    driver.findElement(By.xpath("//div[@class='a1 aaA aMZ']")).click();

    org.sikuli.script.Pattern open= new org.sikuli.script.Pattern("C:\\Users\\narendra\\Desktop\\test\\filename.PNG");
    org.sikuli.script.Pattern open1= new org.sikuli.script.Pattern("C:\\Users\\narendra\\Desktop\\test\\open.PNG");

    org.sikuli.script.Screen scr= new org.sikuli.script.Screen();
    scr.setAutoWaitTimeout(30);
    scr.type(open, "C:\\Users\\narendra\\Desktop\\test\\searchButton");
    scr.click(open1);