初学python,最近在抱着虫师的python+selenium自动化的书看,也尝试写个登录功能的验证2333 code:########################## #使用python selenium-webdriver #模拟博客园的登录流程 #首页--登录页面--跳转回首页--检查--退出登录恢复环境 ########################### from selenium import webdriver import time import sys url_cnblog = "https://www.cnblogs.com/" username = "陈月白" passwd = "passwd4test" #假的,嘻嘻~ #检查url def check_url(target_url): #print("target_url =",target_url) #获取当前url current_url = browser.current_url if current_url == target_url: print("check url success,current_url =",current_url) else: print("check url failed,target_url =%s,but current_url =%s"%(target_url,current_url)) sys.exit(1) #检查页面title def check_title(target_title): #print("target_title =",target_title) current_title = browser.title if current_title == target_title: print("check title success,current_title =",current_title) else: print("check title failed,target_title =%s,but current_title =%s"%(target_title,current_title)) browser = webdriver.Firefox() browser.maximize_window() #测试窗口最大化 browser.get(url_cnblog) #get博客园首页 time.sleep(3) browser.find_element_by_xpath(".//*[@id=‘span_userinfo‘]/a[1]").click() #点击首页登录按钮 time.sleep(2) #登录处理 browser.find_element_by_id("input1").clear() #默认可能会有提示之类文字,先清空一把 browser.find_element_by_id("input1").sendkeys(username) #time.sleep(2) browser.find_element_by_id("input2").clear() browser.find_element_by_id("input2").sendkeys(passwd) browser.find_element_by_id("signin").click() time.sleep(3) #检查是否登录并跳转首页 check_url(target_url) #检查页面title check_title("博客园 - 开发者的网上家园") #获取当前登录用户名 也可以优化成函数~ current_user = browser.find_element_by_xpath(".//*[]@id=‘span_userinfo‘/a[1]").text #.text方法可获取指定元素的文本 #print("current_user =",current_user) if current_user == username: print("check login username success,current_user =",current_user) else: print("check login username failed,username =%s,but current_user ="%(username,current_user)) #退出登录,恢复环境 browser.find_element_by_xpath(".//*[]@id=‘span_userinfo‘/a[5]").click() print("alert_text =",browser.switch_to_alert().text) #确认弹窗处理 browser.switch_to_alert().accept() time.sleep(2) browser.quit()
时间: 2024-08-12 19:13:07