selenium4.0 批量删除163邮箱已删除邮件片

selenium4.0 批量删除163邮箱已删除邮件

在这里插入图片描述

通过 添加cookie免登录方式进入邮箱,提取cookie内容
在这里插入图片描述

#!/user/bin/env python3
# -*- coding: utf-8 -*-

from selenium.webdriver.common.by import By
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager
import time

service = ChromeService(executable_path=ChromeDriverManager().install())  # selenium4.0自动下载驱动
print("驱动地址:", service.path)
driver = webdriver.Chrome(service=service)  # 初始化driver

driver.implicitly_wait(20)  # 隐式等待


# 查找元素
def get_element(locator):
    try:
        button = driver.find_element(*locator)

        webdriver.ActionChains(driver).move_to_element(button).click(button).perform()
        print('%s,%s:存在' % locator)
        return True
    except:
        print('%s,%s:不存在' % locator)
        return False


url = "https://mail.163.com/js6/main.jsp?sid=lBTCJYgsYOKbMTUHHmssuOLCfZXAVMLm&df=mail163_letter#module=mbox.ListModule%7C%7B%22fid%22%3A4%2C%22order%22%3A%22date%22%2C%22desc%22%3Atrue%7D"
driver.get(url)  # 打开浏览器地址

# 浏览器中F12 接口请求中获取cookie信息
cookie_dic = {

    "MAIL_PINFO": "htKx7SNF_SfJHDjm"
    ,
    "MAIL_PASSPORT": "zcsmFntKx7SNF_SfJHDjmuB2"

}

for k, v in cookie_dic.items():  # 添加cookie
    print(k, v)
    driver.add_cookie({
        'name': k,
        'value': str(v)
    })
print('添加cookie')

driver.get(url)  # 打开浏览器地址

# driver.find_element(By.XPATH,"//span[text()='其他2个文件夹']").click()
# driver.find_element(By.XPATH,'//*[@class="js-component-tree nui-tree-item nui-tree-item-isUnfold"]/div').click()
driver.find_element(By.XPATH, '//*[@id="spnHideFolders"]').click()  # 点击其他2个文件
driver.find_element(By.XPATH, '//*[@id="dvNavTree"]/ul/li/ul/li[5]/div/span[2]').click()  # 点击已删除

# # 定位点击 confirm
# driver.find_element(By.XPATH, '//*[@id="_mail_button_49_661"]/span').click()
# # 切换到 confirm 弹框
# confirm = driver.switch_to.alert
# # 获取 confirm 文本内容
# print(confirm.text)
# # 取消
# confirm.dismiss()
# # 确定
# # confirm.accept()

# 2.常用Xpath的定位方式汇总:
# /child::  (由父节点定位子节点),
# /parent::(由子节点定位父节点),
# /preceding-sibling::(由弟弟节点定位哥哥节点),
# /following::(由哥哥节点定位弟弟节点)
# /..  (父级)
# text/父级/父级/(子)android.widget.ImageView


index = 1
while True:
    print(index)
    all_sel = (By.XPATH, "//*[@class='js-component-icon nui-ico nui-ico-checkbox  ']")  # 全选框元素定位
    if get_element(all_sel) == False:  # 判断全选框是否存在
        break
    driver.find_element(all_sel).click()  # 点击全选框
    time.sleep(2)
    driver.find_element(By.XPATH, "//span[text()='彻底删除']").click()
    driver.find_element(By.XPATH, "//span[text()='确 定']").click()
    time.sleep(3)

    index += 1

driver.close()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值