使用selenium和AutoIT自动从windows explore上传图像

时间:2017-08-03 06:55:35

标签: selenium autoit

我必须自动化一个场景,比如使用Selenium将图像从Windows资源管理器上传到TinyMCE组件。由于Selenium不支持操作系统控制,我使用AutoIt上传图像。 AutiIt将图像路径设置为“文件名”,似乎也点击了“打开”按钮。但是图像没有加载到我的“源”字段。

这是我的Selenium命令:

Runtime.getRuntime().exec("C:/XXXXX/src/test/resources/uploadImage.exe");
// Path of the AutoIT script file

AutoIT脚本:

WinActivate("Open")
Send("C:\LCNGProjects\Screenshots\Images\GifImage1.gif")
Sleep(5000)
Send("{ENTER}")

参阅随附的屏幕截图

Refer the attached screenshot

3 个答案:

答案 0 :(得分:1)

不确定我的问题是否正确,您是否编译了脚本。

您能否通过以下链接查看脚本编译和逐步信息如何上传文件。

https://www.guru99.com/use-autoit-selenium.html

答案 1 :(得分:0)

您不需要使用AutoIt。 Auto将使您的脚本仅在Windows机器上可靠。

而不是使用标记为type="file"的上传按钮的定位符(即xpath)找到元素。现在通过这个简单的sendKeys传递您的图像的绝对路径,如下所示: -

button2.sendKeys("C:\\UsersDesktop\\logo\\Summit-Logo-900px.png");

或使用

System.getProperty("user.dir")); 

在项目中追加文件路径,将项目路径和文件名排除在外 示例: -

button.sendKeys(System.getProperty("user.dir")+"\\logo\\Summit-Logo-900px.png");

以下链接包含更多上传文件的选项,如下所示: -

  • 使用SendKeys命令。
  • 使用AutoIt脚本。
  • 使用Jacob com接口。

http://www.techbeamers.com/handle-file-upload-selenium-webdriver/#h3

希望它会对你有所帮助:)。

答案 2 :(得分:0)

我不打算在这里添加完整的源代码。您可以在测试用例中使用此命令调用AutoIT脚本。

// Call to AutoIT script to upload the image

Runtime.getRuntime().exec("C:\\xxxxx\\src\\test\\resources\\uploadImage.exe");

AutoIT Scrip

 ControlFocus("Open","","Edit1")
    ControlSetText("Open","","Edit1","C:\xxxx\Images\jpgImage")
    ControlClick("Open","","Button1")

有关更多信息,请参阅以下链接 https://www.guru99.com/use-autoit-selenium.html