bobocup commited on
Commit
428a212
·
verified ·
1 Parent(s): d754d8d

Update nb4x.py

Browse files
Files changed (1) hide show
  1. nb4x.py +75 -59
nb4x.py CHANGED
@@ -129,69 +129,85 @@ def wait_for_email_input(driver, timeout=30):
129
  """等待邮箱输入框出现并返回"""
130
  global consecutive_failures
131
 
132
- start_time = time.time()
133
- while time.time() - start_time < timeout:
134
- try:
135
- # 获取并记录页面源码
136
- page_source = driver.page_source
137
- logger.info("当前页面源码:")
138
- logger.info("=" * 50)
139
- logger.info(page_source[:500] + "...")
140
- logger.info("=" * 50)
141
-
142
- # 获取页面标题
143
- logger.info(f"当前页面标题: {driver.title}")
144
-
145
- # 检查页面源代码中是否包含关键元素
146
- if "descope-wc" in page_source:
147
- logger.info("找到 descope-wc 元素")
148
- else:
149
- logger.info("未找到 descope-wc 元素")
150
-
151
- # 尝试获取 Shadow DOM 元素
152
  try:
153
- wrapper = driver.find_element(By.CSS_SELECTOR, "#AppProvider_Wrapper > form > descope-wc")
154
- logger.info("找到 wrapper 元素")
155
- except:
156
- logger.info("未找到 wrapper 元素")
 
 
157
 
158
- # 原来的元素查找逻辑
159
- input_js = """
160
- var wrapper = document.querySelector("#AppProvider_Wrapper > form > descope-wc");
161
- if (!wrapper) {
162
- return "wrapper not found";
163
- }
164
- var shadow1 = wrapper.shadowRoot;
165
- if (!shadow1) {
166
- return "shadow1 not found";
167
- }
168
- var elem = shadow1.querySelector("#TExZpnv5m6");
169
- if (!elem) {
170
- return "elem not found";
171
- }
172
- var shadow2 = elem.shadowRoot;
173
- if (!shadow2) {
174
- return "shadow2 not found";
175
- }
176
- var input = shadow2.querySelector("#input-vaadin-email-field-3");
177
- if (!input) {
178
- return "input not found";
179
- }
180
- return "found";
181
- """
182
- result = driver.execute_script(input_js)
183
- logger.info(f"元素查找结果: {result}")
184
-
185
- if result == "found":
186
- logger.info("邮箱输入框已加载")
187
- return True
188
 
189
- except Exception as e:
190
- logger.error(f"查找元素时发生错误: {str(e)}")
191
-
192
- logger.info("等待10秒后重试...")
193
- time.sleep(10)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
194
 
 
 
 
195
  # 更新失败计数
196
  if ENABLE_FAILURE_STOP:
197
  consecutive_failures += 1
 
129
  """等待邮箱输入框出现并返回"""
130
  global consecutive_failures
131
 
132
+ # 先等待页面加载完成
133
+ logger.info("等待页面完全加载...")
134
+ try:
135
+ WebDriverWait(driver, 20).until(
136
+ lambda d: d.execute_script('return document.readyState') == 'complete'
137
+ )
138
+ logger.info("页面加载完成")
139
+
140
+ # 再等待10秒,确保JavaScript完全执行
141
+ logger.info("等待10秒让JavaScript完全执行...")
142
+ time.sleep(10)
143
+
144
+ # 现在开始检查元素
145
+ start_time = time.time()
146
+ while time.time() - start_time < timeout:
 
 
 
 
 
147
  try:
148
+ # 获取并记录页面源码
149
+ page_source = driver.page_source
150
+ logger.info("当前页面源码:")
151
+ logger.info("=" * 50)
152
+ logger.info(page_source[:500] + "...")
153
+ logger.info("=" * 50)
154
 
155
+ # 获取页面标题
156
+ logger.info(f"当前页面标题: {driver.title}")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
157
 
158
+ # 检查页面源代码中是否包含关键元素
159
+ if "descope-wc" in page_source:
160
+ logger.info("找到 descope-wc 元素")
161
+ else:
162
+ logger.info("未找到 descope-wc 元素")
163
+
164
+ # 尝试获取 Shadow DOM 元素
165
+ try:
166
+ wrapper = driver.find_element(By.CSS_SELECTOR, "#AppProvider_Wrapper > form > descope-wc")
167
+ logger.info("找到 wrapper 元素")
168
+ except:
169
+ logger.info("未找到 wrapper 元素")
170
+
171
+ # 原来的元素查找逻辑
172
+ input_js = """
173
+ var wrapper = document.querySelector("#AppProvider_Wrapper > form > descope-wc");
174
+ if (!wrapper) {
175
+ return "wrapper not found";
176
+ }
177
+ var shadow1 = wrapper.shadowRoot;
178
+ if (!shadow1) {
179
+ return "shadow1 not found";
180
+ }
181
+ var elem = shadow1.querySelector("#TExZpnv5m6");
182
+ if (!elem) {
183
+ return "elem not found";
184
+ }
185
+ var shadow2 = elem.shadowRoot;
186
+ if (!shadow2) {
187
+ return "shadow2 not found";
188
+ }
189
+ var input = shadow2.querySelector("#input-vaadin-email-field-3");
190
+ if (!input) {
191
+ return "input not found";
192
+ }
193
+ return "found";
194
+ """
195
+ result = driver.execute_script(input_js)
196
+ logger.info(f"元素查找结果: {result}")
197
+
198
+ if result == "found":
199
+ logger.info("邮箱输入框已加载")
200
+ return True
201
+
202
+ except Exception as e:
203
+ logger.error(f"查找元素时发生错误: {str(e)}")
204
+
205
+ logger.info("等待10秒后重试...")
206
+ time.sleep(10)
207
 
208
+ except Exception as e:
209
+ logger.error(f"等待页面加载时发生错误: {str(e)}")
210
+
211
  # 更新失败计数
212
  if ENABLE_FAILURE_STOP:
213
  consecutive_failures += 1