如何从web驱动程序上传gmail中的多个图像

时间:2015-06-15 06:24:25

标签: selenium selenium-webdriver

我尝试从Gmail中的文件夹上传多个图片,是否可以通过机器人类在网络驱动程序中使用。

  driver.findElement(By.className("aoT")).click();
  driver.findElement(By.className("aoT")).sendKeys("hi");
  WebElement frame1 = driver.findElement(By.cssSelector("div[class='Am Al editable LW-avf']"));
  frame1.click();
  frame1.sendKeys("mailBody");
  driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
    driver.findElement(By.xpath("//div[@class='a1 aaA aMZ']")).click();
    //click on attachment icon
        StringSelection ss = new StringSelection("E:\\cv\\");
       //upload your file using RobotClass
       //attach your path where file is located.
       Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);
       Robot robot = new Robot();
       Thread.sleep(5000);
       robot.keyPress(KeyEvent.VK_CONTROL);
       robot.keyPress(KeyEvent.VK_V);
       robot.keyRelease(KeyEvent.VK_CONTROL);
       robot.keyRelease(KeyEvent.VK_V);
       Thread.sleep(6000);
       robot.keyPress(KeyEvent.VK_ENTER);
       robot.keyRelease(KeyEvent.VK_ENTER);
       Thread.sleep(10000);

E:/ cv ----包含文件的数量,因此需要知道从特定文件夹中选择所有文件。谢谢!

1 个答案:

答案 0 :(得分:0)

是的,这是可能的。

  1. 您可以在这样的数组中累积要上传的图像的所有文件路径:

    String arr[] = {"\"D:\\Images\\default.jpg\"", "\"E:\\Images\\plant4.jpg\"", "\"F:\\Jpeg-image.jpeg\""};

    注意:图片不必来自同一位置

  2. 在一个字符串中连接文件路径数组(上面)的所有内容,如下所示:

    for(int i=1;i<arr.length;i++){ Arr_Final+=arr[i]; }

    StringSelection ss = new StringSelection(Arr_Final);
  3. 将Final String作为参数,同时创建 StringSelection 类的对象:

    "D:\Images\default.jpg""E:\Images\plant4.jpg""F:\Jpeg-image.jpeg"

  4. 现在,当此字符串粘贴在对话框的“文件名”字段中时,它将表示如下:
    MyWrapper

    然后,当点击打开按钮时,所有相关图像开始上传。

    希望这会有所帮助..