我是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
请让我知道我该怎么办? 感谢
答案 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 ='相片'。])点击();