質問編集履歴

5

workaroundの誤記修正

2020/05/24 11:00

投稿

ji-desuji
ji-desuji

スコア11

test CHANGED
File without changes
test CHANGED
@@ -242,13 +242,13 @@
242
242
 
243
243
  ### Workaroundのソースコード
244
244
 
245
- 賢い方法ではないですが、下記方法にて何とか処理を進めることができそうです
245
+ 賢い方法ではないですが、下記方法にて何とか処理を進めることができました
246
246
 
247
247
  20回実行し、10回1回目OK、10回2回目でOK。
248
248
 
249
- なぜか、tryで処理を進めたところ、成功率が上がりました。
249
+ なぜか、tryで処理を入れたところ、成功率が上がりました。
250
-
250
+
251
- 念のため、5回tryしています。
251
+ 絶対に失敗したくないので、念のため、5回tryしています。
252
252
 
253
253
  ```python
254
254
 

4

workaroud追加

2020/05/24 11:00

投稿

ji-desuji
ji-desuji

スコア11

test CHANGED
File without changes
test CHANGED
@@ -240,6 +240,104 @@
240
240
 
241
241
 
242
242
 
243
+ ### Workaroundのソースコード
244
+
245
+ 賢い方法ではないですが、下記方法にて何とか処理を進めることができそうです。
246
+
247
+ 20回実行し、10回1回目OK、10回2回目でOK。
248
+
249
+ なぜか、tryで処理を進めたところ、成功率が上がりました。
250
+
251
+ 念のため、5回tryしています。
252
+
253
+ ```python
254
+
255
+ driver.switch_to.frame(driver.find_element_by_id('iframeのid'))
256
+
257
+ try:
258
+
259
+ print('1回目')
260
+
261
+ driver.find_element_by_name('buttonのname').click()
262
+
263
+ except:
264
+
265
+ try:
266
+
267
+ time.sleep(1)
268
+
269
+ driver.refresh()
270
+
271
+ time.sleep(2)
272
+
273
+ print('2回目')
274
+
275
+ driver.switch_to.frame(driver.find_element_by_id('iframeのid'))
276
+
277
+ driver.find_element_by_name('buttonのname').click()
278
+
279
+ except:
280
+
281
+ try:
282
+
283
+ time.sleep(1)
284
+
285
+ driver.refresh()
286
+
287
+ time.sleep(2)
288
+
289
+ print('3回目')
290
+
291
+ driver.switch_to.frame(driver.find_element_by_id('iframeのid'))
292
+
293
+ driver.find_element_by_name('buttonのname').click()
294
+
295
+ except:
296
+
297
+ try:
298
+
299
+ time.sleep(1)
300
+
301
+ driver.refresh()
302
+
303
+ time.sleep(2)
304
+
305
+ print('4回目')
306
+
307
+ driver.switch_to.frame(driver.find_element_by_id('iframeのid'))
308
+
309
+ driver.find_element_by_name('buttonのname').click()
310
+
311
+ except:
312
+
313
+ try:
314
+
315
+ time.sleep(1)
316
+
317
+ driver.refresh()
318
+
319
+ time.sleep(2)
320
+
321
+ print('5回目')
322
+
323
+ driver.switch_to.frame(driver.find_element_by_id('iframeのid'))
324
+
325
+ driver.find_element_by_name('buttonのname').click()
326
+
327
+ except:
328
+
329
+ print('NG')
330
+
331
+
332
+
333
+
334
+
335
+ driver.switch_to.window(driver.window_handles[-1])#新しいウィンドウを有効にする
336
+
337
+ time.sleep(2)
338
+
339
+ ```
340
+
243
341
 
244
342
 
245
343
  ### 補足情報(FW/ツールのバージョンなど)

3

試したこと追記

2020/05/24 10:59

投稿

ji-desuji
ji-desuji

スコア11

test CHANGED
File without changes
test CHANGED
@@ -200,6 +200,46 @@
200
200
 
201
201
 
202
202
 
203
+ switchの後で、コード出力すると、iFrame内のコードが表示される
204
+
205
+ ただし、switchに成功するまで確認する必要あり。
206
+
207
+ ```python
208
+
209
+ target = driver.find_element_by_id('iframeのid要素')
210
+
211
+ driver.execute_script('arguments[0].scrollIntoView(true);', target)#iFrameの要素までスクロールする
212
+
213
+ time.sleep(2)
214
+
215
+
216
+
217
+ iframe = driver.find_element_by_id('iFrameのid要素')
218
+
219
+ driver.switch_to.frame(iframe)#<-★Debugで確認すると、ここで止まることがある。
220
+
221
+ with open('log.txt', 'w+',encoding="utf-8_sig") as f:
222
+
223
+ f.writelines(driver.page_source)
224
+
225
+ time.sleep(2)
226
+
227
+
228
+
229
+ driver.find_element_by_name("button").click()#ボタンを押す
230
+
231
+ time.sleep(2)
232
+
233
+
234
+
235
+ driver.switch_to.window(driver.window_handles[-1])#新しいウィンドウを有効にする
236
+
237
+ time.sleep(2)
238
+
239
+ ```
240
+
241
+
242
+
203
243
 
204
244
 
205
245
  ### 補足情報(FW/ツールのバージョンなど)

2

試したことを追加

2020/05/18 11:01

投稿

ji-desuji
ji-desuji

スコア11

test CHANGED
File without changes
test CHANGED
@@ -158,6 +158,48 @@
158
158
 
159
159
  約3回に1回失敗している感じです。
160
160
 
161
+  ⇒2020/5/17現在は、10~20回に1回しかアクセスできない状態。
162
+
163
+
164
+
165
+ 下記コードで、log.txtにソースを出力して確認はできた。
166
+
167
+ ```python
168
+
169
+ target = driver.find_element_by_id('iframeのid要素')
170
+
171
+ driver.execute_script('arguments[0].scrollIntoView(true);', target)#iFrameの要素までスクロールする
172
+
173
+ time.sleep(2)
174
+
175
+
176
+
177
+ iframe = driver.find_element_by_id('iFrameのid要素')
178
+
179
+ with open('log.txt', 'w+',encoding="utf-8_sig") as f:
180
+
181
+ f.writelines(driver.page_source)
182
+
183
+ driver.switch_to.frame(iframe)#<-★Debugで確認すると、ここで止まることがある。
184
+
185
+ time.sleep(2)
186
+
187
+
188
+
189
+ driver.find_element_by_name("button").click()#ボタンを押す
190
+
191
+ time.sleep(2)
192
+
193
+
194
+
195
+ driver.switch_to.window(driver.window_handles[-1])#新しいウィンドウを有効にする
196
+
197
+ time.sleep(2)
198
+
199
+ ```
200
+
201
+
202
+
161
203
 
162
204
 
163
205
  ### 補足情報(FW/ツールのバージョンなど)

1

コードを修正・追加

2020/05/17 05:45

投稿

ji-desuji
ji-desuji

スコア11

test CHANGED
File without changes
test CHANGED
@@ -116,25 +116,35 @@
116
116
 
117
117
 
118
118
 
119
- ```ここに言語名を入力
119
+ ```python
120
120
 
121
- iframe = driver.find_element_by_id('iFrame_ID')#ボタンを押すために、iframeに飛ぶ
121
+ target = driver.find_element_by_id('iframeのid要素')
122
122
 
123
- driver.switch_to.frame(iframe)
123
+ driver.execute_script('arguments[0].scrollIntoView(true);', target)#iFrameの要素までスクロールする
124
124
 
125
- time.sleep(2)
125
+ time.sleep(2)
126
126
 
127
127
 
128
128
 
129
- driver.find_element_by_name("button").click()#ボタンを押す
129
+ iframe = driver.find_element_by_id('iFrameid要素')
130
130
 
131
+ print(iframe)#ここまで正常に動作
132
+
133
+ driver.switch_to.frame(iframe)#<-★Debugで確認すると、ここで止まることがある。
134
+
131
- time.sleep(2)
135
+ time.sleep(2)
132
136
 
133
137
 
134
138
 
135
- driver.switch_to.window(driver.window_handles[-1])#新しいウィドウ有効に
139
+ driver.find_element_by_name("button").click()#ボタンを
136
140
 
137
- time.sleep(2)
141
+ time.sleep(2)
142
+
143
+
144
+
145
+ driver.switch_to.window(driver.window_handles[-1])#新しいウィンドウを有効にする
146
+
147
+ time.sleep(2)
138
148
 
139
149
  ```
140
150