python app自动签到_Python实现自动签到(一)

环境准备

Python编译环境 --anaconda安装,一种Python IDE集成环境

selenium --web 的自动化测试工具,第三方类包

webdriver --浏览器webdriver,模拟打开浏览器使用

有了以上三种环境,就可以使用Python+selenium+webdriver实现网页自动登陆,签到,退出等操作。

组件安装

Python 编译环境

通过anaconda官方地址,下载所需的版本,部署过程比较简单,在此不做过多介绍,可参考Anaconda介绍、安装及使用教程。

下图为anaconda开始界面,可通过Jupyter(notebook)练习python代码编写。

1048901-20200910105809275-1580203538.png

selenium 安装

在win命令行使用 pip install selenium 安装第三方类包。

selenium 是一个 web 的自动化测试工具,详细使用可参考官方文档

https://selenium-python.readthedocs.io/index.html

webdriver 安装

签到实现

代码逻辑

def_logging.py

定义日志输出

signin.py

引入selenium类包

webdriver.Chrome() 实现网页模拟打开

driver.find_element_by_xpath 定位登陆页面的账号、密码、登陆按钮实现自动输入点击

driver.find_element_by_partial_link_text 获取签到页面链接并进入

driver.window_handles 获取目前打开的所有窗口,并切换至签到页面所在窗口

driver.find_element_by_xpath 定位签到按钮,并实现自动点击

driver.quit() 退出浏览器

代码部分

def_logging.py

#!/usr/bin/env python

# coding: utf-8

import logging

logFilename='C:\Mypython\执行日志.log'

def logging_out(logContext):

''''' Output log to file and console '''

# Define a Handler and set a format which output to file

logging.basicConfig(

level=logging.INFO, # 定义输出到文件的log级别,大于此级别的都被输出

format='%(asctime)s %(filename)s : %(levelname)s %(message)s', # 定义输出log的格式

datefmt='%Y-%m-%d %A %H:%M:%S', # 时间

filename=logFilename, # log文件名

filemode='a') # 写入模式“w”或“a”

logging.info(logContext)

signin.py

#!/usr/bin/env python

# coding: utf-8

import time

from selenium import webdriver

from selenium.webdriver.common.keys import Keys

from selenium.webdriver.common.by import By

from def_logging import logging_out

myusername = "xxxxxxxx@qq.com"#登录账号

mypassword = "xxxxxxxx"#登录密码

driver = webdriver.Chrome() #模拟浏览器打开网站

driver.get("https://www.xxxxx.cn/member.php?mod=logging&action=login")

driver.maximize_window()

try:

driver.find_element_by_xpath("//*[@name='username']").send_keys(myusername)

time.sleep(2)

driver.find_element_by_xpath("//*[@name='password']").send_keys(mypassword)

time.sleep(2)

driver.find_element_by_xpath("//*[@name='loginsubmit']").click()

time.sleep(5)

driver.find_element_by_partial_link_text('签到').click()

time.sleep(5)

windows=driver.window_handles #获取全部的浏览器窗口

print(windows)

print(driver.current_url) #获取当前浏览器窗口url

print(driver.current_window_handle) #获取当前浏览器窗口

driver.switch_to.window(windows[1]) #切换浏览器窗口到签到

print(driver.current_url) #获取当前浏览器窗口url

print(driver.current_window_handle) #获取当前浏览器窗口

#driver.find_element_by_partial_link_text('首页').click()

driver.find_element_by_xpath("//div[@class='qdleft']/a").click()

time.sleep(2)

logging_out("签到成功")

except:

logging_out("签到失败")

#退出去动

driver.quit()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值