请懂python+selenium的帮忙解答下我的疑问

图片说明
这种登录的界面,有时会在密码下面出现一个需要输入验证码的框。旁边有一张图片,验证码为英文和数字的组合。我的疑问是打开这个页面的时候,怎么判断我打开的页面是有验证码的。如果有验证码,让其输入用户名,密码,验证码后,点击 登录,登录 成功。没有验证码的时候,输入用户名和密码,点击登录即可登录成功。关于判断界面是否有验证码的代码是加在打开网页后,还是加在输入用户名和密码后,在点击登录之前呢?本人初学这个。请高手不吝赐教,谢谢!
下面附上我的代码

from selenium import webdriver#导入selenium下的webdriver
from time import sleep#导入time下的sleep
from selenium.webdriver.common.action_chains import ActionChains#导入鼠标事件,登录后的操作需要用到鼠标悬浮

browser=webdriver.Firefox()#定义浏览器为Firefox
browser.get('https://tapd.)#打开链接地址
browser.maximize_window()#最大化浏览器窗口
browser.implicitly_wait(10)#隐式等待最多10秒
browser.find_element_by_xpath('//*[@id="l_p_m"]/div[2]/label').click()#使用xpath定位到用户名输入框,并点击
browser.find_element_by_xpath('//*[@id="username"]').send_keys('ng')#向用户名输入框,输入用户名
browser.find_element_by_id('password_input').send_keys('2448)#向密码输入框,输入密码
browser.find_element_by_xpath('//*[@id="login_button"]').click()#点击下方的登录
ActionChains(browser).move_to_element(browser.find_element_by_xpath('/html/body/div[4]/ul/li[2]/ul/li[1]/a')).perform()#使用鼠标悬浮到登录的菜单上。
browser.find_element_by_link_text(u'每日签入/签出').click()#使用link_text定位到元素上,并点击
browser.find_element_by_xpath('//*[@id="checkin_btn"]').click()#使用id定位到元素并点击
browser.quit(self)#退出浏览器

2个回答

先分析有验证码时的页面输入域的 id 特征,然后以此特征作为搜索条件,如果能找到该元素,则就走该方式的验证。
判断时机应该是在触发登录按钮点击之前。

使用if语句做一个逻辑判断,首先将账号和密码这里输入完成,然后增加if语句,判断是否出现验证码的特征值,如果有则输入验证码,如果没有则点击登录

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问