2017-02-14 91 views
1

下面是我的AutoIt脚本:如何在Selenium中通过AutoIt脚本动态上传文件?

ControlFocus("Open","","Edit1") 
ControlSetText("Open","","Edit1","C:\\project\\data\\data.csv") 
ControlClick("Open","","Button1") 

并转换文件到exe这是Java文件,如下使用。

Runtime.getRuntime().exec("C:\\project\\script\\TestAutoIt3.exe"); 

现在我要上传10个文件,我有两个问题在这里:

  1. 我可以动态地传递文件名和创建EXE文件?
  2. 如果我想在其他系统中运行这个脚本,exe文件将不会工作,因为该项目可能在其他路径。我如何 处理这个?

在此先感谢?

+0

是否要通过webUI上传文件?为什么不用'selenium'上传文件? – Andersson

+0

您能否让我知道我们该怎么做? –

回答

0

要使用Selenium + Java你需要下面的代码上传文件:

ChromeDriver driver = new ChromeDriver(); 
driver.get("http://page.com"); // This is the page with file upload field 
WebElement fileInput = driver.findElement(By.xpath("//input[@type='file']")); 
fileInput.sendKeys("C:\\Path\\To\\File.jpg"); 
+0

感谢Andresson,但是如果我的输入类型是按钮并且它正在打开浏览窗口,我们该如何解决? –

+0

是的,它看起来像“浏览”或“上传”按钮(实际上它是“”HTML“元素)。它用来接收文件的路径。你可以用提到的方式处理它。你已经试过我的代码? – Andersson

+0

产品中存在一个错误。现在你的代码像冠军一样工作。非常感谢。 –

0

请使用从安德森给出了答案,所以没有保持AutoIt的文件(EXE/AU3)的头痛。如果您在其他系统中使用您的代码,则不需要额外的工作。

相关问题