質問編集履歴
5
workaroundの誤記修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -120,10 +120,10 @@
|
|
120
120
|
```
|
121
121
|
|
122
122
|
### Workaroundのソースコード
|
123
|
-
賢い方法ではないですが、下記方法にて何とか処理を進めることができ
|
123
|
+
賢い方法ではないですが、下記方法にて何とか処理を進めることができました。
|
124
124
|
20回実行し、10回1回目OK、10回2回目でOK。
|
125
|
-
なぜか、tryで処理を
|
125
|
+
なぜか、tryで処理を入れたところ、成功率が上がりました。
|
126
|
-
念のため、5回tryしています。
|
126
|
+
絶対に失敗したくないので、念のため、5回tryしています。
|
127
127
|
```python
|
128
128
|
driver.switch_to.frame(driver.find_element_by_id('iframeのid'))
|
129
129
|
try:
|
4
workaroud追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -119,7 +119,56 @@
|
|
119
119
|
time.sleep(2)
|
120
120
|
```
|
121
121
|
|
122
|
+
### Workaroundのソースコード
|
123
|
+
賢い方法ではないですが、下記方法にて何とか処理を進めることができそうです。
|
124
|
+
20回実行し、10回1回目OK、10回2回目でOK。
|
125
|
+
なぜか、tryで処理を進めたところ、成功率が上がりました。
|
126
|
+
念のため、5回tryしています。
|
127
|
+
```python
|
128
|
+
driver.switch_to.frame(driver.find_element_by_id('iframeのid'))
|
129
|
+
try:
|
130
|
+
print('1回目')
|
131
|
+
driver.find_element_by_name('buttonのname').click()
|
132
|
+
except:
|
133
|
+
try:
|
134
|
+
time.sleep(1)
|
135
|
+
driver.refresh()
|
136
|
+
time.sleep(2)
|
137
|
+
print('2回目')
|
138
|
+
driver.switch_to.frame(driver.find_element_by_id('iframeのid'))
|
139
|
+
driver.find_element_by_name('buttonのname').click()
|
140
|
+
except:
|
141
|
+
try:
|
142
|
+
time.sleep(1)
|
143
|
+
driver.refresh()
|
144
|
+
time.sleep(2)
|
145
|
+
print('3回目')
|
146
|
+
driver.switch_to.frame(driver.find_element_by_id('iframeのid'))
|
147
|
+
driver.find_element_by_name('buttonのname').click()
|
148
|
+
except:
|
149
|
+
try:
|
150
|
+
time.sleep(1)
|
151
|
+
driver.refresh()
|
152
|
+
time.sleep(2)
|
153
|
+
print('4回目')
|
154
|
+
driver.switch_to.frame(driver.find_element_by_id('iframeのid'))
|
155
|
+
driver.find_element_by_name('buttonのname').click()
|
156
|
+
except:
|
157
|
+
try:
|
158
|
+
time.sleep(1)
|
159
|
+
driver.refresh()
|
160
|
+
time.sleep(2)
|
161
|
+
print('5回目')
|
162
|
+
driver.switch_to.frame(driver.find_element_by_id('iframeのid'))
|
163
|
+
driver.find_element_by_name('buttonのname').click()
|
164
|
+
except:
|
165
|
+
print('NG')
|
122
166
|
|
167
|
+
|
168
|
+
driver.switch_to.window(driver.window_handles[-1])#新しいウィンドウを有効にする
|
169
|
+
time.sleep(2)
|
170
|
+
```
|
171
|
+
|
123
172
|
### 補足情報(FW/ツールのバージョンなど)
|
124
173
|
|
125
174
|
Python 3.8
|
3
試したこと追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -99,7 +99,27 @@
|
|
99
99
|
time.sleep(2)
|
100
100
|
```
|
101
101
|
|
102
|
+
switchの後で、コード出力すると、iFrame内のコードが表示される
|
103
|
+
ただし、switchに成功するまで確認する必要あり。
|
104
|
+
```python
|
105
|
+
target = driver.find_element_by_id('iframeのid要素')
|
106
|
+
driver.execute_script('arguments[0].scrollIntoView(true);', target)#iFrameの要素までスクロールする
|
107
|
+
time.sleep(2)
|
102
108
|
|
109
|
+
iframe = driver.find_element_by_id('iFrameのid要素')
|
110
|
+
driver.switch_to.frame(iframe)#<-★Debugで確認すると、ここで止まることがある。
|
111
|
+
with open('log.txt', 'w+',encoding="utf-8_sig") as f:
|
112
|
+
f.writelines(driver.page_source)
|
113
|
+
time.sleep(2)
|
114
|
+
|
115
|
+
driver.find_element_by_name("button").click()#ボタンを押す
|
116
|
+
time.sleep(2)
|
117
|
+
|
118
|
+
driver.switch_to.window(driver.window_handles[-1])#新しいウィンドウを有効にする
|
119
|
+
time.sleep(2)
|
120
|
+
```
|
121
|
+
|
122
|
+
|
103
123
|
### 補足情報(FW/ツールのバージョンなど)
|
104
124
|
|
105
125
|
Python 3.8
|
2
試したことを追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -78,7 +78,28 @@
|
|
78
78
|
|
79
79
|
sleepが足りないのかと思い、5秒程度まで長くしてみたのですがそれでも効果ありませんでした。
|
80
80
|
約3回に1回失敗している感じです。
|
81
|
+
⇒2020/5/17現在は、10~20回に1回しかアクセスできない状態。
|
81
82
|
|
83
|
+
下記コードで、log.txtにソースを出力して確認はできた。
|
84
|
+
```python
|
85
|
+
target = driver.find_element_by_id('iframeのid要素')
|
86
|
+
driver.execute_script('arguments[0].scrollIntoView(true);', target)#iFrameの要素までスクロールする
|
87
|
+
time.sleep(2)
|
88
|
+
|
89
|
+
iframe = driver.find_element_by_id('iFrameのid要素')
|
90
|
+
with open('log.txt', 'w+',encoding="utf-8_sig") as f:
|
91
|
+
f.writelines(driver.page_source)
|
92
|
+
driver.switch_to.frame(iframe)#<-★Debugで確認すると、ここで止まることがある。
|
93
|
+
time.sleep(2)
|
94
|
+
|
95
|
+
driver.find_element_by_name("button").click()#ボタンを押す
|
96
|
+
time.sleep(2)
|
97
|
+
|
98
|
+
driver.switch_to.window(driver.window_handles[-1])#新しいウィンドウを有効にする
|
99
|
+
time.sleep(2)
|
100
|
+
```
|
101
|
+
|
102
|
+
|
82
103
|
### 補足情報(FW/ツールのバージョンなど)
|
83
104
|
|
84
105
|
Python 3.8
|
1
コードを修正・追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -57,16 +57,21 @@
|
|
57
57
|
|
58
58
|
### 該当のソースコード
|
59
59
|
|
60
|
-
```
|
60
|
+
```python
|
61
|
-
|
61
|
+
target = driver.find_element_by_id('iframeのid要素')
|
62
|
-
|
62
|
+
driver.execute_script('arguments[0].scrollIntoView(true);', target)#iFrameの要素までスクロールする
|
63
|
-
|
63
|
+
time.sleep(2)
|
64
64
|
|
65
|
-
|
65
|
+
iframe = driver.find_element_by_id('iFrameのid要素')
|
66
|
+
print(iframe)#ここまで正常に動作
|
67
|
+
driver.switch_to.frame(iframe)#<-★Debugで確認すると、ここで止まることがある。
|
66
|
-
|
68
|
+
time.sleep(2)
|
67
69
|
|
70
|
+
driver.find_element_by_name("button").click()#ボタンを押す
|
71
|
+
time.sleep(2)
|
72
|
+
|
68
|
-
|
73
|
+
driver.switch_to.window(driver.window_handles[-1])#新しいウィンドウを有効にする
|
69
|
-
|
74
|
+
time.sleep(2)
|
70
75
|
```
|
71
76
|
|
72
77
|
### 試したこと
|