本人初学者一枚,琢磨了两个月,无法解决,求哪位好朋友帮助一下,虚心学习,感激不尽!


本人初学者一枚,琢磨了两个月,无法解决,求哪位好朋友帮助一下,虚心学习,感激不尽!


中午好🌞🌞🌞
本答案参考通义千问
从你的描述来看,你正在尝试使用 DrissionPage 来自动化操作 Chrome 浏览器中的 PDF 文件打印过程。然而,由于 PDF 打印界面是通过 Shadow DOM 构建的,这使得直接定位和交互变得困难。
首先,你可以手动打开 PDF 文件并检查打印对话框的具体结构。使用 Chrome 开发者工具(按 F12 打开),找到“打印”按钮的具体位置和属性。
execute_script 方法如果 DrissionPage 支持执行 JavaScript,你可以尝试通过 JavaScript 来触发打印事件。
from DrissionPage import ChromiumPage
# 创建一个 ChromiumPage 对象
page = ChromiumPage()
# 打开 PDF 文件
page.get('file:///path/to/your/pdf/file.pdf')
# 使用 JavaScript 触发打印事件
page.execute_script("window.print();")
send_keys 方法模拟键盘事件如果你无法直接定位到打印按钮,可以尝试模拟按下键盘上的“Ctrl+P”组合键来打开打印对话框。
from DrissionPage import ChromiumPage
# 创建一个 ChromiumPage 对象
page = ChromiumPage()
# 打开 PDF 文件
page.get('file:///path/to/your/pdf/file.pdf')
# 模拟按下 Ctrl+P 组合键
page.send_keys('ctrl+p')
如果上述方法仍然不奏效,可以考虑使用第三方库如 pyautogui 来辅助完成打印操作。
import pyautogui
from DrissionPage import ChromiumPage
# 创建一个 ChromiumPage 对象
page = ChromiumPage()
# 打开 PDF 文件
page.get('file:///path/to/your/pdf/file.pdf')
# 模拟按下 Ctrl+P 组合键
pyautogui.hotkey('ctrl', 'p')
# 等待打印对话框出现并进行相关操作
window.print() 方法直接触发打印。send_keys 方法模拟键盘事件。pyautogui 进行更复杂的操作。希望这些方法能够帮助你解决问题。如果还有其他疑问或需要进一步的帮助,请随时告诉我!