循环登录代码
while True: if driver.find_element_by_class_name("loaderIcon"): print("网页加载中") time.sleep(1) elif driver.find_element_by_class_name("ut-tab-bar"): print("登陆成功") return True elif driver.find_element_by_class_name("btn-standard"): driver.find_element_by_class_name("btn-standard").click() WebDriverWait(driver, 1).until(EC.frame_to_be_available_and_switch_to_it((By.ID, "btnLogin"))) if driver.find_element_by_id("btnLogin"): print("找到 btnLogin") break elif driver.find_element_by_id("email"): driver.find_element_by_id("email").send_keys(username) driver.find_element_by_id("password").send_keys(pwd) driver.find_element_by_id("btnLogin").click() elif driver.find_element_by_id("btnSendCode"): print("等待输入验证码") elif driver.find_element_by_class_name("general-error"): print("登陆错误!!!") break
必须要吧每个find_element_xxx 封装函数,内部try catch处理,代码量增加不少
while True: if 是否加载中(): print("网页加载中") time.sleep(1) elif 登陆成功(): print("登陆成功") return True elif 是否登录界面(): driver.find_element_by_class_name("btn-standard").click() WebDriverWait(driver, 1).until(EC.frame_to_be_available_and_switch_to_it((By.ID, "btnLogin"))) if driver.find_element_by_id("btnLogin"): print("找到 btnLogin") break elif 是否输入用户名密码界面(): driver.find_element_by_id("email").send_keys(username) driver.find_element_by_id("password").send_keys(pwd) driver.find_element_by_id("btnLogin").click() elif 是否验证码界面(): print("等待输入验证码") elif 登陆错误(1): print("登陆错误!!!") break