selenium 与 chrome 进行qq登录并发邮件操作实例详解


Posted in Javascript onApril 06, 2017

selenium 与 chrome 进行qq登录并发邮件操作实例详解

出现的问题:

qq邮箱各种iframe需要切换,延时是必须的,通过各种方法找元素,qq邮件正文的iframe name是变化的,其他几种方法都不行,最后居然用这样搞定。o[0].click() , o[0].send_keys("abc"),还得再研究研究!!!

备注:已经在机器上登录过QQ客户端,XXXX是发送QQ号,YYYYY是接受QQ号

from selenium import webdriver
import time
import sys


if 1: 
  driver=webdriver.Chrome()
  driver.get('http://www.qq.com')
  qq_handle = driver.current_window_handle
  driver.find_element_by_xpath('''//*[@id="loginGrayLayout"]''').click()
  time.sleep(1)
  driver.switch_to.frame('login_frame')
  driver.find_element_by_xpath('''//*[@id="img_out_XXXXX"]''').click()
  time.sleep(1)
  driver.refresh()
  driver.find_element_by_xpath('''//*[@id="mailGrayIconLogin"]/a''').click()
  all_handles = driver.window_handles
  time.sleep(1)
  driver.switch_to.window(all_handles[1])
  driver.find_elements_by_css_selector('#composebtn')[0].click() #

  time.sleep(1)
  driver.switch_to.frame('mainFrame')
  driver.find_element_by_xpath('''//*[@id="toAreaCtrl"]/div[2]/input''').send_keys("XXXXX@vip.qq.com")
  driver.find_element_by_xpath('''//*[@id="subject"]''').send_keys("Test Mail Subject")

  o=driver.find_elements_by_class_name("qmEditorIfrmEditArea")
  o[0].click()
  o[0].send_keys("Hello world!") 
  driver.find_element_by_xpath('''//*[@id="toolbar"]/div/a[1]''').click()

  sys.exit(0)

driver=webdriver.Chrome()
driver.get('http://mail.qq.com')
driver.switch_to.frame("login_frame")
driver.find_element_by_xpath('''//*[@id="img_out_XXXXX"]''').click()
time.sleep(1)
driver.find_elements_by_css_selector('#composebtn')[0].click()
time.sleep(1)
driver.switch_to.frame('mainFrame')
time.sleep(1)
driver.find_element_by_xpath('''//*[@id="toAreaCtrl"]/div[2]/input''').send_keys("YYYYY@vip.qq.com")
driver.find_element_by_xpath('''//*[@id="subject"]''').send_keys("Test Mail Subject")
o=driver.find_elements_by_class_name("qmEditorIfrmEditArea")
o[0].click() #must click.... shit!!!!
o[0].send_keys("abc")
driver.find_element_by_xpath('''//*[@id="toolbar"]/div/a[1]''').click()

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
轻轻松松学习JavaScript
Feb 25 Javascript
Javascript面向对象编程
Mar 18 Javascript
js将控件隐藏的方法及display属性介绍
Jul 04 Javascript
javascript 获取HTML DOM父、子、临近节点
Jun 16 Javascript
JavaScript中的console.log()函数详细介绍
Dec 29 Javascript
JavaScript数组前面插入元素的方法
Apr 06 Javascript
详解AngularJS中的filter过滤器用法
Jan 04 Javascript
Javascript blur与click冲突解决办法
Jan 09 Javascript
在NPM发布自己造的轮子的方法步骤
Mar 09 Javascript
详解如何使用router-link对象方式传递参数?
May 02 Javascript
JS实现放烟花效果
Mar 10 Javascript
Ant Design的Table组件去除
Oct 24 Javascript
js遍历获取表格内数据的方法(必看)
Apr 06 #Javascript
JS优化与惰性载入函数实例分析
Apr 06 #Javascript
大白话讲解JavaScript的Promise
Apr 06 #Javascript
JS实现的二叉树算法完整实例
Apr 06 #Javascript
JavaScript结合HTML DOM实现联动菜单
Apr 05 #Javascript
js实现按座位号抽奖
Apr 05 #Javascript
Angularjs 实现移动端在线测评效果(推荐)
Apr 05 #Javascript
You might like
PHP与MySQL开发中页面出现乱码的一种解决方法
2007/07/29 PHP
用php实现选择排序的解决方法
2013/05/04 PHP
浅谈PHP中Stream(流)
2015/06/08 PHP
PHP运行模式汇总
2016/11/06 PHP
值得分享和收藏的Bootstrap学习教程
2016/05/12 Javascript
jquery 将当前时间转换成yyyymmdd格式的实现方法
2016/06/01 Javascript
jQGrid动态填充select下拉框的选项值(动态填充)
2016/11/28 Javascript
详解VueJs异步动态加载块
2017/03/09 Javascript
深入浅析Node.js单线程模型
2017/07/10 Javascript
element el-input directive数字进行控制
2018/10/11 Javascript
Vue中el-form标签中的自定义el-select下拉框标签功能
2020/04/20 Javascript
jquery实现简单每周轮换的日历
2020/09/10 jQuery
Python基本数据类型详细介绍
2014/03/11 Python
python网络编程之文件下载实例分析
2015/05/20 Python
python逆向入门教程
2018/01/15 Python
flask 实现token机制的示例代码
2019/11/07 Python
用OpenCV将视频分解成单帧图片,图片合成视频示例
2019/12/10 Python
详解pandas中iloc, loc和ix的区别和联系
2020/03/09 Python
关于canvas绘制模糊问题的解决方法
2019/09/24 HTML / CSS
高级Java程序员面试题
2016/06/23 面试题
临床医学专业个人的自我评价
2013/09/27 职场文书
幼儿园教研活动方案
2014/01/19 职场文书
员工试用期自我鉴定范文
2014/09/15 职场文书
领导干部学习“三严三实”思想汇报
2014/09/15 职场文书
大学生国庆节65周年演讲稿范文
2014/09/25 职场文书
公安领导班子四风问题个人整改措施思想汇报
2014/10/09 职场文书
2014年质量管理工作总结
2014/12/01 职场文书
2015年七七事变78周年纪念活动方案
2015/05/06 职场文书
人民检察院起诉书
2015/05/20 职场文书
团结友爱主题班会
2015/08/13 职场文书
2019年大学生职业生涯规划书最新范文
2019/03/25 职场文书
婚礼必备主持词范本!
2019/07/23 职场文书
Goland使用Go Modules创建/管理项目的操作
2021/05/06 Golang
node快速搭建后台的实现步骤
2022/02/18 NodeJs
Spring Bean是如何初始化的详解
2022/03/22 Java/Android
python创建字典及相关管理操作
2022/04/13 Python