我有一个关于如何从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()
答案 0 :(得分:1)
不是你要问的问题,但这是Firefox
中对我有用的。
使用ActionChains
将CTRL+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是浏览器的语言。