質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Q&A

解決済

1回答

2854閲覧

Python Pywinautoでメモ帳に自動で文字を書いて保存したい。

03972020

総合スコア11

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

0グッド

0クリップ

投稿2017/10/30 09:31

環境 Windows 7 Python2.7

コマンドラインで以下を実行。正常に動いた。

from pywinauto import applicatio
app = application.Application.start("notepad.exe")
app.Notepad.Edit1.SetText(" 123 ")
app.Notepad.MenuSelect(u"ファイル->名前を付けて保存")
dialog = app[u"名前を付けて保存"]
dialog.Edit1.SetText(u"test.txt")
dialog.Button1.Click()

以下エディターでスクリプトを作成し保存

coding: utf-8 (#を先頭に付けた。何故かこの記号は表示されない。)
from datetime import datetime
from pywinauto import application
app = application.Application.start("notepad.exe")
app.Notepad.Edit1.SetText(" 123 ")
app.Notepad.MenuSelect(u"ファイル->名前を付けて保存")
dialog = app[u"名前を付けて保存"]
dialog.Edit1.SetText(u"test.txt")
dialog.Button1.Click()

実行したが、保存出来なかった。
app.Notepad.Edit1.SetText(" 123 ")までは正常に動作。
app.Notepad.MenuSelect(u"ファイル->名前を付けて保存") 以降を削除して動作確認したところ、この行がうまく動作していないよです。
保存のウインドウが表示されず終了してしいます。

エディターで書いて動かすとうまく動かないので宜しくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

まず、.pyファイルの文字コードが正しくUTF-8で保存されているか確認ください。
次に、正しく保存されていても、当方環境(Python=2.7.14, pywinauto=0.6.3, Windows10)で同様現象が再現しました。
こちらの環境では、ファイル保存ダイアログは表示されtest.txt入力までは動作しましたが、最後の保存ボタンクリックが動作しませんでした。
原因は不明ですが、とりあえず以下のように修正することでボタンクリック動作させることができました。
参考まで。

参考:pywinautoでGUIのメニューをクリック

Python

1from pywinauto import application 2app = application.Application().start("notepad.exe") # Application -> Application() 3app.Notepad.Edit1.SetText(" 123 ") 4app.Notepad.MenuSelect(u"ファイル->名前を付けて保存") 5dialog = app[u"名前を付けて保存"] 6dialog.Edit1.SetText(u"test.txt") 7 8# 反応しなければ再試行 9dialog.Button1.Click() 10if dialog.Button1.Exists(): 11 dialog.Button1.Click()

投稿2017/10/31 01:21

can110

総合スコア38234

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

03972020

2017/10/31 08:09

ご回答有難う御座いました。 if文以降を追加して試しましたが、変化ありません。 環境 Python=2.7.14, pywinauto=0.4.0, Windows7 「.pyファイルの文字コードが正しくUTF-8で保存されているか確認ください。」とありますが、具体的には何を見れば宜しいでしょうか。 宜しくお願いします。
can110

2017/10/31 08:15

お使いのエディタが不明ですが、たとえばサクラエディタであればファイルを開くとステータスバーに表示されるので確認できます。 他の確認方法については「Windows テキストファイル エンコーディング 確認」なりで検索してみてください。
03972020

2017/10/31 08:33

早速回答有難う御座いました。 エンコードを確認したところ、シフトJISでした、 保存時にUTF-8指定して保存したところ正常に動作しました。 有難う御座いました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問