一尘不染

如何使用Selenium的Java接口从站点上载文件

selenium

我是selenium开发的新手,我需要“抓取”此页面:

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")); 
}

阅读 229

收藏
2020-06-26

共1个答案

一尘不染

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

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

这个想法是将文件的路径直接发送到元素,您通常会单击该元素以获取模式窗口-即<input type='file' />element。

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

WebDriver将焦点放在您称为“ sendKeys”的元素上。仅当焦点离开该元素时才会触发“
onchange”事件。这样,您可能需要移动焦点,可能需要在另一个元素上单击“单击”。

2020-06-26