Java 使用AutoIt在Selenium WebDriver中通过窗口提示上载文件

Java 使用AutoIt在Selenium WebDriver中通过窗口提示上载文件,java,eclipse,windows,selenium-webdriver,autoit,Java,Eclipse,Windows,Selenium Webdriver,Autoit,我想在SeleniumWebDriver中使用AutoIt上传文件。我有一个AutoIt代码,用于在窗口提示中粘贴文件路径并单击“打开”按钮 但我的问题是,在使用下面的代码点击“浏览”按钮后,会出现文件上传的窗口提示,我的代码不会从该点移动到下一行,我会调用autoit可执行文件 driver.findElement(By.xpath("//div[@class='field-group file-inputlist']//div[@class='field-group ']//input"))

我想在SeleniumWebDriver中使用AutoIt上传文件。我有一个AutoIt代码,用于在窗口提示中粘贴文件路径并单击“打开”按钮

但我的问题是,在使用下面的代码点击“浏览”按钮后,会出现文件上传的窗口提示,我的代码不会从该点移动到下一行,我会调用autoit可执行文件

driver.findElement(By.xpath("//div[@class='field-group file-inputlist']//div[@class='field-group ']//input")).click();
我的自动代码是

WinWait("[CLASS:#32770]","",10) ; 

//Set input focus to the edit control of Upload window using the handle returned by WinWait 
ControlFocus("File Upload","","Edit1") Sleep(2000) ; 

//Set the File name text on the Edit field 
ControlSetText("File Upload", "", "Edit1", $CmdLine[1]) Sleep(2000) ; 

//Click on the Open button 
ControlClick("File Upload", "","Button1"); 
Eclipse甚至没有抛出任何错误或异常。代码在浏览器单击“浏览”按钮并打开窗口提示时停止


注意:如果我手动关闭窗口提示,则代码将从此处继续。

文件上载要遵循的步骤包括:

  • 点击浏览按钮
  • 等待窗口打开
  • 等待窗口处于活动状态(可编辑)
  • 设置控件,然后选择要上载的文件
  • 尝试步骤2-4的示例代码

    示例代码:

    WinWait("File Upload")
    WinActivate("File Upload")
    ControlSetText("File Upload", "", "[CLASS:Edit;INSTANCE:1]",$CmdLine[1])
    ;ControlSetText("Choose", "", "[CLASS:Edit;INSTANCE:1]", "*****Absolute File Path********")
    ControlClick("File Upload", "", "[CLASS:Button;TEXT:&Open]")
    

    您能简单地编辑您的帖子,添加一些autoit代码,使其更容易理解吗?注释字段的大小弄乱了格式。您使用“[CLASS:#32770]”和“文件上载”来引用同一窗口,我说得对吗?也许把两者统一起来?为了确保您知道哪一行占用了您的脚本,您可以在每个命令后添加升序数字,如ConsoleWriteLine(“1”),并查看哪一行是控制台中的最后一行。我认为您的autoit die here$CmdLine[1],请尝试硬编码一个有效的文件位置,然后重试您的脚本。感谢代码Vijayakumar。我有自动密码。但我的问题是,一旦SeleniumJava代码单击browse按钮。窗口提示打开。在那里,我的代码停止而不移动到下一行。它不会移动到下一行,直到我手动关闭窗口提示。