from selenium import webdriver
from selenium.webdriver import ActionChains #1.打开登陆页面
wd = webdriver.Chrome()
wd.implicitly_wait(10)
wd.get('https://mail.qq.com/') #2.切换到账号密码登陆
login_frame = wd.find_element_by_id('login_frame')
wd.switch_to.frame(login_frame)
wd.find_element_by_id('switcher_plogin').click() #3.输入账号密码
u = wd.find_element_by_id('u')
u.send_keys('')#---------------此处填QQ号
p = wd.find_element_by_id('p')
p.send_keys('')#----------------此处填QQ邮箱密码 #4.点击登陆按钮
wd.find_element_by_id('login_button').click() #5.点击收信
wd.find_element_by_id('folder_1').click()
#6.切换到收信iframe框架里
main_frame = wd.find_element_by_id('mainFrame')
wd.switch_to.frame(main_frame) #获取第一个tab页
h = wd.current_window_handle #通过css选择器,找到我们邮件列表里面的内容
email_eles = wd.find_elements_by_css_selector('.toarea .F, .toarea .M')
email_eles_count = len(email_eles)
#遍历每一封邮件
for i in range(email_eles_count):
#获取邮件列表的邮件项
email_ele = wd.find_elements_by_css_selector('.toarea .F, .toarea .M')[i]
#右击邮件项
ActionChains(wd).context_click(email_ele).perform()
#然后选择在新窗口打开
wd.find_elements_by_css_selector('.menu_item')[1].click()
#切换到邮件详情页tab
email_detail_handle = wd.window_handles[2]#----------此处的数字个人可能不同,1或者2,可自行调试
wd.switch_to.window(email_detail_handle)
#切换到内容部分
main_frame = wd.find_element_by_id('mainFrame')
wd.switch_to.frame(main_frame)
#获取邮件的标题
subject = wd.find_element_by_id('subject').text
#获取邮件的内容
# content = wd.find_element_by_id('mainContentContainer').text
print(subject)
#关闭tab页
wd.close()
#回到第一个tab页,即邮件列表tab
wd.switch_to.window(h)
#又切换到列表部分
main_frame = wd.find_element_by_id('mainFrame')
wd.switch_to.frame(main_frame) wd.quit()

最新文章

  1. 关于MySQL存储过程中遇到的一个错误
  2. [Leetcode] Course Schedule
  3. CentOS 安装rz和sz命令
  4. iOS创建子工程
  5. NEWS - InstallShield 2015 正式发布
  6. memcache的最佳实践方案。
  7. c#中设置像数量,价格,金额等的textbox的限制条件,用户只能输入数字或小数
  8. 杭电ACM(1002) -- A + B Problem II 大数相加 -提交通过
  9. flappy pig小游戏源码分析(3)——解剖util
  10. 中国省市位置描述JSON数据
  11. ClassLoader的等级加载机制
  12. solr6.4.1搜索引擎同步mysql数据库
  13. SprintBoot的@ComponentScan“踩坑”
  14. Ubuntu上更改MySQL数据库数据存储目录
  15. Java课程寒假之开发记账本软件(Android版)之一
  16. 001-JUnit之断言assert
  17. Python基础之re模块
  18. Hdoj 1233.还是畅通工程 题解
  19. MySQL5.7.32 通用版本安装
  20. BZOJ2069 POI2004ZAW(最短路)

热门文章

  1. Java变量类型识别的3种方式
  2. drf信号量
  3. centos安装Tesseract
  4. Spring Aop实例@Aspect、@Before、@AfterReturning@Around 注解方式配置
  5. NPOI 上传Excel功能(三)
  6. SQL Server For XML
  7. React 设计模式 --- Container and Presentational pattern(容器和展示组件分离)
  8. 训练赛-Building Numbers
  9. 云服务器ECS
  10. Json中Date映射到model