2012-05-09 63 views
0

我是新的硒發展,我需要「刮」這個頁面上傳從一個站點中的文件:如何使用Selenium的Java inteface

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

如果我理解你的問題吧,你要上傳的文件存在,是正確的?這應該做的伎倆:

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

的想法是直接發送的文件路徑到你通常在按拿模態窗口中的元素 - 這是<input type='file' />元素。

因爲大多數的這些文件上傳輸入有一些onchange事件觸發,你應該能夠火的。據WebDriver FAQ,對於這一個簡單的解決方案,這樣你就不必手動觸發所有這些事件:

webdriver的樹葉在你呼籲「的SendKeys」的元素的焦點。 「onchange」事件只有在焦點離開該元素時纔會觸發。由於 這樣,您需要移動焦點,也許使用另一個「單擊」元素。

+0

我會嘗試的感謝! :) – JackTurky

+0

在那個輸入類型文件中,有一個JavaScript調用「onChange」。如果我運行你的代碼,它會在輸入中設置路徑,但不加載方法onChange,建議? – JackTurky

+1

我很確定這個電話會觸發。但由於這是一個很好的做JS,你可以手動調用它:'(JavascriptExecutor)d.executeScript( 「onChangeFileBrowse( '的FileField')」);' –

相關問題