如何使用Java在Selenium中上传文件

时间:2018-07-12 12:28:27

标签: java selenium webdriver

我正在尝试使用Java在硒中上传文件。当我运行测试用例时,它每次都通过,但文件未上传。请参阅下面的网站以及我在其中执行的代码。

网站网址:https://files.fm/

我要上传的Xpath:// input [@ name ='file_upload []']

注意:如果此xpath不正确,请在注释中更新。

代码:

@BeforeTest
public void OpenBrowser() {

    System.setProperty("webdriver.chrome.driver", "./driver/chromedriver.exe");
    driver = new ChromeDriver();
    driver.manage().window().maximize();
    driver.get("https://files.fm/");
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}

@Test
public void FileUpload() throws InterruptedException, IOException {
    Thread.sleep(2000);
    WebElement file = driver.findElement(By.xpath("//input[@name='file_upload[]']"));
    file.sendKeys("C:/Users/Admin/Pictures/Lighthouse.jpg");
}

2 个答案:

答案 0 :(得分:1)

使用以下代码:

WebElement file = driver.findElement(By.xpath("//input[@id='file_upload']//following-sibling::input"));
file.sendKeys("C:/Users/Admin/Pictures/Lighthouse.jpg");

WebElement startUploadButton = driver.findElement(By.xpath("//div[@id='savefiles']//div"));
startUploadButton.click(); 

希望对您有帮助:)

答案 1 :(得分:0)

您选择了错误的输入。我尝试发送到其他输入,并且有效

这是它的xpath。

String inPath = "//*[@id='uploadifive-file_upload']/input[2]";