有没有人知道如何通过selenium + python从chrome启动打印对话框

时间:2014-09-18 00:04:57

标签: python selenium printing selenium-webdriver

我有一个关于如何从Chrome浏览器启动打印对话框的问题。我知道打开它的快捷键是ctrl + p,但我不知道如何在selenium中描述它。有谁知道这个?非常感谢!

我尝试了以下代码,但它在我的Chrome浏览器上无效。

    actions = ActionChains(driver)
    actions.move_to_element(driver.find_element_by_tag_name('body'))
    actions.key_down(Keys.CONTROL).send_keys('T').key_up(Keys.CONTROL).perform()

2 个答案:

答案 0 :(得分:1)

不是你要问的问题,但这是Firefox中对我有用的。

使用ActionChainsCTRL+P(或Mac上的COMMAND+P发送到body元素:

from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("http://google.com")

actions = ActionChains(driver)
actions.move_to_element(driver.find_element_by_tag_name('body'))
actions.key_down(Keys.CONTROL).send_keys('p').key_up(Keys.CONTROL)
actions.perform()

答案 1 :(得分:1)

基本上,您需要触发触发打印弹出窗口的JavaScript函数。该函数为window.print()

因此,您需要的是在到达要打印的页面后触发该功能。 假设您要打印stackoverflow.com

的首页
driver.get("https://stackoverflow.com")
# now you're at the page you want to print. Trigger print function
driver.execute_path("window.print()")

现在,它应该提示您进入打印弹出窗口。您需要触发JavaScript函数的原因是因为JavaScript是浏览器的语言。