使用python selenium-webdriver模拟博客园登录

初学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

使用python selenium-webdriver模拟博客园登录的相关文章

python模拟博客园登录-基础版

mport timeimport inspectfrom functools import wrapsuser_status = {'username': None,'status': False} dic1 = { 1: '登录', 2: '注册', 3: '文章', 4: '日记', 5: '评论', 6: '收藏', 7: '注销', 8: '退出程序'} dic2 = { 3: 'artecle', 4: 'diary', 5: 'comment', 6: 'collection', 7

python简单模拟博客园系统

# 用代码模拟博客园系统## 项目分析:# 1.首先程序启动,显示下面内容供用户选择:## 1.请登录# 2.请注册# 3.进入文章页面# 4.进入评论页面# 5.进入日记页面# 6.进入收藏页面# 7.注销账号# 8.退出整个程序# 2.必须实现的功能:## 1.注册功能要求:# a.用户名.密码要记录在文件中.# b.用户名要求:不能有特殊字符并且确保用户名唯一.# c.密码要求:长度要在6~14个字符之间.## 2.登录功能要求:# a.用户输入用户名.密码进行登录验证.# b.登录成功之

Python爬虫爬取博客园并保存

Python爬虫爬取博客园并保存        爬取博客园指定用户的文章修饰后全部保存到本地 首先定义爬取的模块文件: crawlers_main.py 执行入口 url_manager.py url管理器 download_manager.py 下载模块 parser_manager.py html解析器(解析html需要利用的内容) output_manager.py 输出html网页全部内容文件(包括css,png,js等) crawlers_main.py 执行入口 1 # coding

前端练习 模拟博客园页面搭建

完成效果 blog.css /*这是一个博客园首页的样式表*/ /*通用样式*/ body{ margin: 0; background-color: #eeeeee; } a{ text-decoration: none; /*取消下划线*/ } ul{ list-style-type:none; padding-left: 0; } .clearfix:after{ /*防止父标签塌陷*/ content:''; display: block; clear:both; } .blog-lef

模拟博客园系统

1. 启动程序, 显?菜单列表      菜单:      1. 登录      2. 注册      3. ?章      4. ?记      5. 退出 2. ?户输入选项, ?章和?记必须在登录后才可以进?操作.(装饰器) 3. ?户注册, 将?户名和密码写入到register?件中. 同时?成"article_?户名"?件?于 存储?户?章. 同时?成"diary_?户名" 来存储?户的?记内容. 4. ?户登录成功后, ?户名和密码从register?件

利用装饰器模拟博客园登陆

import os # 登录状态 status_dic = { 'username': None, 'status': False } flag = True # 用户名,密码 以字典形式打开 def user_pwd(): with open("user", encoding="utf-8") as f: dic = {} for i in f: li = i.strip().split("|") dic[li[0].strip()] = li

发个牢骚,博客园登录依旧使用HTTP明文传输密码,有木有!

直接抓包就能获取用户名和密码,有木有! tbUserName: your_user_name tbPassword: your_password 还能让人放心地使用博客园吗! 不求你全程HTTPS,搞个登录时POST数据时HTTPS也行啊~ 或者像Discuss!一样对密码进行个hash再传输也可以的啊~ 凑字数.凑字数.凑字数.凑字数.凑字数.凑字数.凑字数.凑字数.凑字数.凑字数.凑字数.凑字数.凑字数.凑字数.凑字数.凑字数.凑字数.凑字数.凑字数.凑字数.凑字数.凑字数.凑字数.凑字数.

用Python selenium+webdriver的一个简单的登录自动化测试--豆丁网登录测试

#coding=utf-8 from selenium import webdriver #from selenium.webdriver.remote import switch_to #from selenium.webdriver.common import alert #import unittest  import time,os def users_zidian():  #用户名用例用一个字典实现参数化调用#     users={'zhengshuheng':'123456','[

博客园--登录注册

表结构: 注意:UserInfo表继承了AbstractUser,需要在settings 中写入:AUTH_USER_MODEL ="项目名称.UserInfo" class UserInfo(AbstractUser): #settings :AUTH_USER_MODEL ="项目名称.UserInfo" '''用户信息表''' nid = models.BigAutoField(primary_key=True) nickname =models.CharFi