前提・実現したいこと
tkinter画面からボタンを押すと、作成済のPDFファイルがchromeで開き、更にpyautoguiを使ってショートカッキーで印刷指示画面を開く
という事を実現したい。
発生している問題・エラーメッセージ
作成済のPDFファイルはchromeで開けているのですが、その後のpyautoguiによるキー入力がされない。
該当のソースコード
import sys
import tkinter
from tkinter import messagebox
from time import sleep
from selenium import webdriver
import chromedriver_binary
import pyperclip
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
import pyautogui as pgui
options = webdriver.ChromeOptions()
options.add_argument(
'--user-data-dir=C:Users\xxxxxx\AppData\Local\Google\Chrome\User Data') #各自のデータで・・
driver = webdriver.Chrome(options=options)
root = tkinter.Tk()
root.title(u"ラベル印刷")
root.geometry("400x200")
#============================================
ボタン押下
#============================================
def btn_click(x):
コールバック関数をネストして定義
def zz():
#作成したPDFファイルをchromeで開く
driver.get('file:///D:/test/mydata.pdf')
sleep(3)
#ショートカットキー押下、印刷画面を表示する
pgui.hotkey('ctrl','shift','p')
sleep(3)
#リターン
return zz
#ボタンを動的に配置
btn =[]
for n in range(3):
#ボタンの作成
btn.append(tkinter.Button(root, text = u'印刷', width=10 , command = btn_click(n)))
btn[n].place(x=10, y=30*n + 50)
終了
def check(event):
driver.close()
root.destroy()
button2 = tkinter.Button(root, text=u'終了',width=15)
button2.bind("<Button-1>",check)
button2.place(x=60, y=5)
root.mainloop()
### 試したこと tkinterを使わずにPDFファイルをchromeで開くと、pgui.hotkey('ctrl','shift','p')で印刷指示画面は開きます。 尚、当該ソースでボタン押下後しばらくすると制御が戻ってくる所をみると、2回のsleep(3)は動いているようです。 ### 補足情報(FW/ツールのバージョンなど) Python 3.8.3 PyAutoGUI 0.9.52
あなたの回答
tips
プレビュー