Selenium驱动程序/Java-不带<;输入类型=";文件"&燃气轮机;

Selenium驱动程序/Java-不带<;输入类型=";文件"&燃气轮机;,java,windows,selenium,selenium-webdriver,selenium-chromedriver,Java,Windows,Selenium,Selenium Webdriver,Selenium Chromedriver,我知道这种使用Selenium上传文件的方法 WebElement UploadImg = driver.findElement(By.xpath("//*[@id='file_upload_button']")); UploadImg.sendKeys("d:\5.jpg"); 但是,它要求文件上载按钮必须是表单中的一个按钮 我可以单击上载按钮并查看windows文件提示窗口。选择文件并单击“打开”后,它将工作 它似乎只是这样起作用的。我需要能

我知道这种使用Selenium上传文件的方法

  WebElement UploadImg = driver.findElement(By.xpath("//*[@id='file_upload_button']"));
  UploadImg.sendKeys("d:\5.jpg");
但是,它要求文件上载按钮必须是
表单中的一个按钮

我可以单击上载按钮并查看windows文件提示窗口。选择文件并单击“打开”后,它将工作

它似乎只是这样起作用的。我需要能够在这里选择文件。我已经尝试了所有的按键组合。但是,似乎没有任何东西允许我编辑windows文件提示窗口顶部的文件名


有什么解决办法?非常感谢使用Java的一些优秀示例。

我已经通过使用

我们可以使用Java和Selenium Web驱动程序单击网站上的上载按钮

然后我们可以调用用AutoIt编写的.exe文件。在我们的Java应用程序中。在显示的窗口中执行必要的操作。Selenium Web驱动程序范围之外的操作

我通过这个学习了AutoIt的基本原理

我对教给我的东西做了一些修改。满足我的需要。在Java应用程序中,我们可以将要上载的文件路径写入.txt文件。然后,该文件在运行时被AutoIt.exe文件引用。这样我们就不必将文件路径硬编码到.exe文件中。这意味着我们可以在运行时更改它

自动编码 这段代码从.txt文件读取我们想要上传的文件的路径

然后,它关注windows弹出窗口中的文件路径文本框。它将此文件路径字符串粘贴到其中

然后单击“打开”按钮


看起来您正在寻找Autoit来发送文件。我的项目使用Java并在Eclipse中构建。您有任何示例代码吗?:)那么他们上传功能的html结构是什么呢?可能有一个文件输入框埋在一些样式下,但它是隐藏的。使用我问题中的代码没有任何作用。这就是我们谈论的FB。所以他们很精明。
#include <File.au3>


# File path of .txt with file name inside
Global $sFileName = @ScriptDir & "\info.txt"

# Get file name from .txt file
Global $sFileRead = FileRead($sFileName)

# Focus in on file path text box in pop up window
ControlFocus("Open","","Edit1")

# Small delay
Sleep(1000)

# Enter file name into text box in popup window
ControlSetText("Open","", "Edit1", string($sFileRead))

# Small delay
Sleep(1000)

# Click the upload button
ControlClick("Open", "", "Button1")
// Get file with PrintWriter
PrintWriter writer = new PrintWriter("E:/Google Drive/Data - Cloud/Programming/AutoIt/info.txt", "UTF-8");

// Add our file path to the text file
writer.print("C:\\Users\\jacktrow\\Pictures\\222.jpg");

// Close PrintWriter
writer.close();

// Click upload button on target site
driver.findElement(By.xpath("//a[@data-trigger='anywhere-upload-input']")).click();

// Run AutoIt .exe script that uses file path we saved in .txt file
Runtime.getRuntime().exec("E:/Google Drive/Data - Cloud/Programming/AutoIt/test.exe");