python+selenium的网页自动点击代码

话不多说,直接放代码

# -*- codeing = utf-8 -*-
# @Time: 2020/3/31 8:30
# @Author : czg
# @File : qiandao.py
import time
import os
import datetime
from selenium import webdriver
from selenium.webdriver.common.alert import Alert
from selenium.webdriver.common.keys import Keys
import smtplib
from email.mime.text import MIMEText
from email.header import Header
from selenium.webdriver.support.select import Select


def sendEmail(messages): #用于签到后发送邮箱提醒
    from_add = 'xxxxxxxx@qq.com' #填写发信方邮箱,邮件从这个邮箱发送到其他的邮箱
    password = 'pgtvmzzgdlhubfjj' #此密码是邮箱开启SMTP后的获得的授权码数字
    to_add = 'xxxxxxxxx@qq.com' #填写收信方邮箱
    smtpserver = 'smtp.qq.com' #由于使用的是qq邮箱,所以smtp服务器填写qq的服务器
    msg = MIMEText(messages, 'plain', 'utf-8')
    msg['From'] = Header(from_add)
    msg['To'] = Header(to_add)
    msg['Subject'] = Header('xxxx打卡')
    server = smtplib.SMTP_SSL()
    server.connect(smtpserver)
    server.login(from_add, password)
    server.sendmail(from_add, to_add, msg.as_string())
    server.quit()


def sevenClock():
    if time.localtime(time.time()).tm_hour == 7:
        return True
    else:
        return False


message = "签到"
while True:
    try:
        if sevenClock():
            
            # iedriver = r"C:\Program Files\Internet Explorer\IEDriverServer.exe" #如果使用ie浏览器就用此代码,路径跟随自己电脑中文件路径
            # os.environ["webdriver.ie.driver"] = iedriver

            driver = webdriver.Firefox()#这个是火狐浏览器所使用的
            driver.get("https://xxx.cn/")#此处参数填写网址
            #打开网页,跳转到登陆
            driver.find_element_by_id("username").send_keys("xxxxxx")
            #在username中输入用户名
            driver.find_element_by_id("password").send_keys("xxxxxx")
            #在password中输入密码
            driver.find_element_by_id("password").send_keys(Keys.ENTER)
            #回车登陆
            time.sleep(3)
            driver.get("https://xxxxxx/index")
            #打开信息页面
            driver.find_element_by_xpath("//div[@name='sfzx']/div/div/span[1]").click()
            #找到xx按钮路径并点击
            driver.find_element_by_name("area").find_element_by_tag_name("span").click()
            #点击本地位置
            time.sleep(15)
            driver.find_element_by_css_selector(".wapat-btn.wapat-btn-ok").click()
            #关闭弹窗

            province = Select(driver.find_element_by_css_selector(".hcqbtn.hcqbtn-danger")) #根据css选择器查找标签位置
            province.select_by_value("xx省")#选择指定标签
            time.sleep(1)
            city = Select(driver.find_element_by_css_selector(".hcqbtn.hcqbtn-warning"))
            city.select_by_value("xx市")
            time.sleep(1)
            district = Select(driver.find_element_by_css_selector(".hcqbtn.hcqbtn-primary"))
            district.select_by_value("xx区")
            #点击位置下拉框
            driver.find_element_by_xpath("//div[@name='jrdqtlqk']/div/div[3]/span[1]").click()
            driver.find_element_by_xpath("//div[@name='sfymqjczrj']/div/div[2]/span[1]").click()
            driver.find_element_by_xpath("//div[@name='sfqrxxss']/div/div/span[1]").click()
            # 点击其他信息
            driver.find_element_by_xpath("//div[@class='list-box']/div[@class='footers']/a").click()
            #点击弹出框的提交
            driver.find_element_by_css_selector(".wapcf-btn.wapcf-btn-ok").click()
            #点击弹出框的确定
            driver.close()
            message += '成功  ' + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
            #发送邮件
            sendEmail(message)
            message = "签到"
            time.sleep(3600) 
        else:
            print("现在 "+str(time.localtime(time.time()).tm_hour) + "点钟")
            time.sleep(3600) #休眠一小时
    except BaseException as e:
        print(message + "失败")
        message += '失败  ' + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        sendEmail(message)
        message = "签到"
        break

我是在微信的打卡页面获得的打卡页面网址,然后在电脑端输入该网址。由于大部分系统都有登陆过滤,所以电脑端输入网址后不会直接进入打卡页面,会被重定向到登陆页面,所以代码中存在登陆。

代码应该是因页面而异的,在打卡页面源码中找到需要输入或者点击的控件,输入对应的内容或者操作。其实很简单,只不过可能需要慢慢调试。如果打卡页面发生变化,就可能是出现该输入的东西没输入导致报错。所以需要发送成功或者失败的邮件给自己。这里的发送邮件功能可以参考:Python实现自动发送邮件_LeoPhilo的博客-CSDN博客_python 发送邮件

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值