234十 2019-08-04 21:50 采纳率: 100%
浏览 364

请懂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)#退出浏览器

  • 写回答

3条回答 默认 最新

  • 毕小宝 博客专家认证 2019-08-05 08:58
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?