我一直在使用硒来自动打印文档,并且卡在了打印屏幕上。据我所知,硒不与打印屏幕相互作用,因此我正在寻找可以与硒一起使用的替代情况。到目前为止,我的代码在下面,而我所需要的只是可以让我选择新打印机然后进行打印的代码。另外,我想将打印机更改为“另存为PDF”,然后将pdf保存到文件中,因此,如果这给了我一个捷径,将大有帮助。
from selenium import webdriver
from selenium import *
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
driver = webdriver.Remote(
command_executor='http://127.0.0.1:4444/wd/hub',
desired_capabilities=DesiredCapabilities.CHROME) #This is because I am using remote web driver for my Mac, but it is the same as regular web driver
driver.execute("window.print()")
#Need code here
答案 0 :(得分:0)
找到了一条可能对您有用的建议。 How to convert webpage into PDF by using Python
也许尝试pdfkit
import pdfkit
pdfkit.from_url('http://google.com', 'out.pdf')
答案 1 :(得分:0)
我使用window.print(),然后执行包含必需的js命令的python字符串:
print_function = '''
let A = document.getElementsByTagName('print-preview-app')[0].shadowRoot;
let B = A.getElementById('sidebar').children[0].shadowRoot;
let C = B.getElementById('button-strip').children[0]
C.click()
'''
driver.execute_script(print_function)
请记住,您还需要使用driver.swich_to.window(window_handles [i])来确保与打印盒进行交互。
一旦您输入了shadowRoot元素,您就没有完全可用的driver.find_element_by方法。在shadowRoot中搜索时,您只能使用通过JS提供的方法。