Python+selenium实现自动循环扔QQ邮箱漂流瓶

yipeiwu_com6年前Python基础

本文实例为大家分享了Python自动循环扔QQ邮箱漂流瓶的具体代码,供大家参考,具体内容如下

Python代码如下:

# coding=utf-8
from selenium import webdriver
from time import sleep
from random import randint

def auto_throw():
 """扔瓶子"""
 driver = webdriver.Chrome()
 driver.get("https://mail.qq.com")
 sleep(2)
 # 切换iframe表单
 driver.switch_to.frame("login_frame")
 driver.find_element_by_xpath('//*[@id="u"]').send_keys("1226206257")
 driver.find_element_by_xpath('//*[@id="p"]').send_keys("cb19939393")
 driver.find_element_by_xpath('//*[@id="login_button"]').click()
 # 将表单切回到最外层
 driver.switch_to.default_content()
 sleep(2)
 i = 0
 m = 0
 # 循环扔瓶子
 while True:
 try:
  driver.find_element_by_xpath('//*[@id="folder_11"]/b[1]').click() # 漂流瓶
  sleep(1)
  # 切换iframe表单
  driver.switch_to.frame("mainFrame")
  sleep(1)
  driver.find_element_by_xpath('//*[@id="toolbar"]/div/a[1]').click() # 扔一个
  sleep(1)
  driver.find_element_by_xpath('//*[@id="bottle_magic"]/div/div[1]/a[1]/span').click() # 普通瓶
  sleep(1)
  driver.find_element_by_xpath('//*[@id="bottle_send"]/div[2]/div[1]/div[4]/div[2]/div[1]/textarea').send_keys("陌生人,
            你的幸运数字是%d!"%randint(1,10000))
  sleep(2)
  driver.find_element_by_xpath('//*[@id="bottle_send"]/div[2]/div[2]/div[3]/a[2]').click() # 扔出去
  # 将表单切回到最外层
  driver.switch_to.default_content()
  m += 1
  print("第%d个瓶子成功扔出!"%m)
  sleep(2)
 except:
  print("扔瓶子失败或者扔瓶子机会用完了!")
  i += 1
  if i > 10:
  print("扔瓶子机会用完了!")
  break


if __name__ == '__main__':
 auto_throw()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

PyQt5下拉式复选框QComboCheckBox的实例

PyQt5下拉式复选框QComboCheckBox的实例

笔者在用PyQt5写GUI时碰到了需要使用下拉式复选框的情况,但是PyQt5中没有相应的组件,而网上找到的方法大多是qt使用的,所以不能直接拿来用。 没办法,在这种让人无奈的情况下,笔者...

python模块之sys模块和序列化模块(实例讲解)

python模块之sys模块和序列化模块(实例讲解)

sys模块 sys模块是与python解释器交互的一个接口 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit...

python求平均数、方差、中位数的例子

CalStatistics.py def getNum(): #获取用户不定长度的输入 nums = [] iNumStr = input("请输入数字(回车退出...

python 动态调用函数实例解析

1. 根据字符串名称 动态调用 python文件内的方法eval("function_name")(参数) 2. 根据字符串 动态调用类中的静态方法,getattr(ClassName,...

react+django清除浏览器缓存的几种方法小结

一. meta方法 打包好的入口index.html头部加入 <META HTTP-EQUIV="pragma" CONTENT="no-cache"> <MET...