无法使用Selenium Webdriver打开“文件上载”窗口

时间:2014-09-21 07:12:56

标签: java selenium file-upload selenium-webdriver

我是Selenium Webdriver的新用户,我想在点击浏览按钮后打开文件上传窗口,但我无法使用webdriver打开它。

这是我的代码:

import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class Login_Page {
 static WebDriver driver;
    public static void main(String args[])
    {
        driver = new FirefoxDriver();
        driver.manage().window().maximize();
        WebDriverWait wait = new WebDriverWait(driver, 40);
WebDriverWait wait = new WebDriverWait(driver, 40);
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        driver.get("http://www.toolsqa.com/automation-practice-form");

            driver.findElement(By.id("photo")).click();



    }
}

我无法看到任何文件上传窗口。

我使用的是Firefox 14.0.1和selenium-server-standalone-2.24.1.jar

请让我知道我该怎么办? 感谢

3 个答案:

答案 0 :(得分:3)

我想你想在点击上传按钮后上传文件。即使您可以单击上传按钮,这将为您显示弹出窗口,但您无法使用selenium调用选择文件。

因此,为了上传文件,您需要这样做:

WebElement uploadButton = driver.findElement(//your strategy) //to the upload button
uploadButton.sendKeys("your full path to the file")

此外,您还需要为相应的FireFox浏览器使用最新的Selenium版本。

答案 1 :(得分:0)

问题在于你的firefox版本。我的脚本运行顺利。一旦遇到这样的问题,这个脚本只会使“浏览”按钮处于焦点。你可以做的是在获得焦点后,发送回车键。 点击事件后添加这段代码。

Actions action = new Actions(driver);
action.sendKeys(Keys.ENTER);

答案 2 :(得分:0)

使用以下行:

driver.findElement(By.xpath(.//*[@ ID ='相片'。])点击();