2014-02-27 83 views
0

需要捕獲我們通過單擊URL中的下載鏈接獲得的PDF文件名。我試過這個code.but,我不能得到第二個窗口 標題或URL好心幫我這個或建議我任何其他的方法來處理這個......用selenium webdriver捕獲下載的pdf文件名

**code I tried** 

@Test 

public void pdfname() throws Exception { 
driver.get(baseUrl + "/english/investments/iv_funds.htm"); 
Set<String> winids = driver.getWindowHandles(); 
Iterator<String> iterate = winids.iterator(); 
Thread.sleep(3000); 
driver.findElement(By.linkText("FUND MATERIALS")).click(); 
Thread.sleep(3000); 
driver.findElement(By.className("sbToggle")).click(); 
Thread.sleep(3000); 
driver.findElement(By.linkText("Fund Details and Performance Update")).click(); 
driver.findElement(By.id("fundPerformance")).click(); 
driver.findElement(By.id("fundPerformance")).clear(); 
driver.findElement(By.id("fundPerformance")).sendKeys("AEGAU"); 
Thread.sleep(3000); 
driver.findElement(By.xpath("//*[@id='perform']")).click(); 
Thread.sleep(18000); 
winids = driver.getWindowHandles(); 
iterate = winids.iterator(); 
String firstwindow=iterate.next(); 
String secondwindow = iterate.next(); 
System.out.println(firstwindow); 
System.out.println(secondwindow); 
driver.switchTo().window(secondwindow); //switch to pdf window 
Thread.sleep(3000); 
System.out.println("url is"+driver.getCurrentUrl()); 
driver.close(); 
} 
+0

你得到了什麼錯誤信息?您是否通過打印第一個窗口和第二個窗口來獲得任何結果。 – Sighil

+0

我沒有收到任何錯誤消息,而是收到空白輸出。但是,我可以打印第二個窗口的ID – qaepk

+0

因此,您可以打印firstwindow和secondwindow變量? – Sighil

回答

0

我想你試圖從OS系統窗口中獲取名稱。 Selenium不與操作系統交互。對於Windows,您可以使用autoit(http://www.autoitscript.com/site/autoit/)與操作系統進行交互。

+0

但是,PDF文件在Chrome瀏覽器窗口(不是OS窗口)中打開。 – qaepk

+0

看起來像這樣,但實際上Chrome正在打開OS窗口。 – Carlos

+0

有沒有其他的解決方案可以在selenium webdriver中捕獲下載的文件名 – qaepk

相關問題