質問編集履歴

2

2020/10/24 14:21

投稿

taikota-sima
taikota-sima

スコア0

test CHANGED
File without changes
test CHANGED
@@ -1,8 +1,16 @@
1
+ ##前提、実現したい事
2
+
3
+ ```
4
+
1
5
  Python pywinaotoでPowerBIを自動更新するために、下記を参考にコードを作成し、実行しました。
2
6
 
3
7
 
4
8
 
5
9
  https://qiita.com/oogaki_newmedia/items/56825d29f2eccbc82a84
10
+
11
+
12
+
13
+ ```
6
14
 
7
15
 
8
16
 

1

2020/10/24 14:21

投稿

taikota-sima
taikota-sima

スコア0

test CHANGED
File without changes
test CHANGED
@@ -1,26 +1,18 @@
1
- ```ここに言語を入力
2
-
3
- コード
4
-
5
- ```### 前提・したいこと
1
+ Python pywinaotoでPowerBIを自動更新するために、下記を参考にコードを作成し、まし
6
2
 
7
3
 
8
4
 
9
- ここに質問の内容を詳しく書いてください。
10
-
11
- (例)PHP(CakePHP)で●●なシステムを作っています。
5
+ https://qiita.com/oogaki_newmedia/items/56825d29f2eccbc82a84
12
-
13
- ■■な機能を実装中に以下のエラーメッセージが発生しました。
14
6
 
15
7
 
16
8
 
17
- ### 発生している問題・エラーメッセージ
9
+ ##発生している問題・エラーメッセージ
18
10
 
19
11
 
20
12
 
21
13
  ```
22
14
 
23
- エラメッセ
15
+ PowerBIの起動まではいくのですが、ホム、更新ボタンが押されず、「win.ホム.wait("visible")」部分でtime-outが発生してしまいます。
24
16
 
25
17
  ```
26
18
 
@@ -28,26 +20,92 @@
28
20
 
29
21
  ### 該当のソースコード
30
22
 
23
+ ```Python
31
24
 
32
25
 
33
- ```ここに言語名を入力
34
26
 
27
+ import os
28
+
29
+ import sys
30
+
31
+ import time
32
+
33
+
34
+
35
+ from pywinauto import Desktop, Application, keyboard
36
+
37
+
38
+
39
+ def main(workbook):
40
+
41
+ exe = 'PBIDesktop.exe'
42
+
43
+
44
+
45
+ # ファイルを開く
46
+
47
+ os.system('start "" "{0}"'.format(workbook))
48
+
49
+ app = Application(backend='uia').connect(path=exe)
50
+
51
+ time.sleep(60)
52
+
53
+ try:
54
+
55
+ # Windowを指定
56
+
57
+ win = app.window(title_re = '.*Power BI Desktop')
58
+
59
+ win.set_focus()
60
+
61
+ # ホーム>更新をクリック
62
+
63
+ win.ホーム.wait("visible")
64
+
65
+ win.ホーム.click_input()
66
+
67
+ win.更新.wait("visible")
68
+
69
+ win.更新.click_input()
70
+
71
+ win.キャンセル.wait_not("visible",timeout=6000)
72
+
73
+ # 保存
74
+
75
+ keyboard.send_keys("^s")
76
+
77
+ time.sleep(120)
78
+
79
+ except Exception as e:
80
+
35
- ソースコード
81
+ print(e)
82
+
83
+ finally:
84
+
85
+ app.kill()
86
+
87
+
88
+
89
+
90
+
91
+ if __name__ == '__main__':
92
+
93
+ try:
94
+
95
+ file_path = sys.argv[1]
96
+
97
+ except (IndexError):
98
+
99
+ print('ファイルを指定してください。')
100
+
101
+ sys.exit()
102
+
103
+
104
+
105
+ main(file_path)
36
106
 
37
107
  ```
38
108
 
39
109
 
40
110
 
41
- ### 試したこと
111
+ #
42
-
43
-
44
-
45
- ここに問題に対して試したことを記載してください。
46
-
47
-
48
-
49
- ### 補足情報(FW/ツールのバージョンなど)
50
-
51
-
52
-
53
- ここにより詳細な情報を記載してください。