2017-06-20 60 views

回答

0

您可以直接發送請求的url,而不涉及硒和獲得與PDF文件的內容的字節數組。之後,您可以使用一些PDF庫(看起來像ITextSharp很受歡迎)閱讀文件內容。

0

在Chrome瀏覽器內部,所有對話框彈出窗口都是html頁面,因此您可以使用Selenium單擊它們。 您可以導航到一個頁面,模擬Ctrl + P鍵盤按鈕按下,切換到打印對話窗口,點擊更改按鈕更改打印機,點擊保存爲PDF,點擊保存按鈕,當顯示「另存爲」框時 - 模擬輸入鍵盤按鈕按下即可實際保存文件。 我沒有做C#,但這裏是如何看起來像在Java中,實際上我已經測試它,它實際上工作:

Robot robot = new Robot(); 
robot.keyPress(KeyEvent.VK_CONTROL); 
robot.keyPress(KeyEvent.VK_P); 
robot.keyRelease(KeyEvent.VK_P); 
robot.keyRelease(KeyEvent.VK_CONTROL); 

// get current browser window handles and switch to window with handle that is last in the list 
Set<String> windowHandles = driver.getWindowHandles(); 
for (String handle : windowHandles) { 
    driver.switchTo().window(handle); 
} 

driver.findElement(By.xpath("//button[contains(text(), 'Change')]")).click(); 
driver.findElement(By.xpath("//span[contains(text(), 'Save as PDF')]")).click(); 
driver.findElement(By.xpath("//button[contains(text(), 'Save')]")).click(); 

// you might need to add waiter here that waits a second, since script is too fast 
// and needs to wait for save dialog box to be shown 

robot.keyPress(KeyEvent.VK_ENTER);