如何使用Selenium java界面从站点上传文件

时间:2012-05-09 18:55:36

标签: java selenium webdriver web-scraping

我是硒发展的新手,我需要“刮”这个页面:

https://annunci.ebay.it/pubblica-annuncio

在此页面中,使用jquery上传图像。我需要在java中使用selenium来做同样的事情。有人可以给我一些建议吗?谢谢!! :)

这是我尝试的:

WebDriver d = new FirefoxDriver();
d.get("https://annunci.ebay.it/pubblica-annuncio");
List<WebElement> elements = d.findElements(By.tagName("input"));
for(WebElement e : elements){
    System.out.println(e.getAttribute("name")); 
}

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题,你想在那里上传一个文件,这是正确的吗?这应该可以解决问题:

d.findElement(By.id("fileField")).sendKeys("C:\\absolutePath\\toYour\\file.jpg");

我们的想法是直接将文件路径发送到您通常单击的元素以获取模态窗口 - 即<input type='file' />元素。

由于大多数文件上传输入都有一些onchange事件触发器,因此您应该可以触发这些事件。根据{{​​3}},有一个简单的解决方案,因此您不必手动触发所有这些事件:

  

WebDriver将焦点留在您称为“sendKeys”的元素中。   只有当焦点离开该元素时,“onchange”事件才会触发。如   这样,您需要移动焦点,可能使用另一个“点击”   元件。