2017-06-20 61 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);