Selenium上传图片

时间:2013-03-26 11:34:27

标签: java selenium

我想借助selenium webdriver code上传图片。任何人都可以帮助我。我将提供在我的应用程序中上传图片的步骤。

  1. 在我的应用程序中,“浏览”按钮显示在创建屏幕中。
  2. 点击浏览按钮后,将显示窗口页面。
  3. 我必须从窗口中选择一张图片,然后点击打开。
  4. 它将使用图像字段中选择的图像名称重定向到我的应用程序。
  5. 图像字段不可编辑(它将采用您选择的图像的名称。)。

    我可以点击带有selenium代码的浏览按钮。

  6. 这里有我的问题:窗口屏幕被打开。但由于没有火道,我无法在窗口页面中进行交互(选择图像并单击打开按钮)。

    任何人都可以尽快帮助我解决问题吗?

3 个答案:

答案 0 :(得分:0)

在使用selenium时使用Autoit处理文件上传窗口。请按照以下步骤操作。

1)下载Autoit并安装它。

2)然后在记事本中写下以下代码。将以下代码中的文件路径更改为您尝试从selenium脚本上载的文件路径。将其另存为uploadhandler.au3。请注意,扩展名应为au3。

WinActivate("Choose file");
Local $file = "c:\yourpath\howtoupload.doc"
ControlSetText("Choose file", "", "Edit1", $file )
ControlClick("Choose file", "", "Button2")

3)右键单击该保存的脚本文件,然后从上下文菜单中单击“编译脚本”。这将生成uploadhandler.exe文件。

4)将此uploadhandler.exe文件放在本地驱动器中,并在您的selenium-java代码中运行此exe文件,无论您需要使用以下代码上传文件。

Process proc = Runtime.getRuntime().exec("C:\\path for your exe file\\uploadhandler.exe");

例如: -

driver.findelement(byid("browse")).click();
Process proc = Runtime.getRuntime().exec("C:\\path for your exe file\\uploadhandler.exe");
//rest of your selenium code continues here.

答案 1 :(得分:0)

看一下这篇博客文章,它帮助了我。

Uploading Files in Remote WebDriver

它使用本地或远程webdriver。现在我有它在Chrome,IE和Firefox上工作。我不相信它适用于Safari驱动程序。

答案 2 :(得分:0)

试试这个:

driver.findElement(By.id("btn_Browse")).click(); 
driver.findElement(By.id("logo")).sendKeys("c:\\ Image.jpg");