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 相关文章推荐
Js与下拉列表处理问题解决
Feb 13 Javascript
jquery让返回的内容显示在特定div里(代码少而精悍)
Jun 23 Javascript
jQuery实现右侧显示可向左滑动展示的深色QQ客服效果代码
Oct 23 Javascript
angularjs创建弹出框实现拖动效果
Aug 25 Javascript
用jquery的attr方法实现图片切换效果
Feb 05 Javascript
彻底解决 webpack 打包文件体积过大问题
Jul 07 Javascript
bootstrap table支持高度百分比的实例代码
Feb 28 Javascript
解决在Bootstrap模糊框中使用WebUploader的问题
Mar 22 Javascript
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
Feb 04 jQuery
javascript实现获取中文汉字拼音首字母
May 19 Javascript
js实现贪吃蛇游戏 canvas绘制地图
Sep 09 Javascript
使用vant的地域控件追加全部选项
Nov 03 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实现搜索地理位置及计算两点地理位置间距离的实例
2016/01/08 PHP
php编程每天必学之验证码
2016/03/03 PHP
非常经典的PHP文件上传类分享
2016/05/15 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
JS的递增/递减运算符和带操作的赋值运算符的等价式
2007/12/08 Javascript
js关闭浏览器窗口及检查浏览器关闭事件
2013/09/03 Javascript
Javascript执行效率全面总结
2013/11/04 Javascript
7个JS基础知识总结
2014/03/05 Javascript
JavaScript function 的 length 属性使用介绍
2014/09/15 Javascript
js实现兼容IE和FF的上下层的移动
2015/05/04 Javascript
使用JavaScript刷新网页的方法
2015/06/04 Javascript
JavaScript中的this到底是什么(一)
2015/12/09 Javascript
js判断手机访问或者PC的几个例子(常用于手机跳转)
2015/12/15 Javascript
JavaScript中使用数组方法汇总
2016/02/16 Javascript
vue下跨域设置的相关介绍
2017/08/26 Javascript
Js中async/await的执行顺序详解
2017/09/22 Javascript
js 数组详细操作方法及解析合集
2018/06/01 Javascript
bootstrap里bootstrap动态加载下拉框的实例讲解
2018/08/10 Javascript
vue中的适配px2rem示例代码
2018/11/19 Javascript
微信小程序仿淘宝热搜词在搜索框中轮播功能
2020/01/21 Javascript
vue 里面的 $forceUpdate() 强制实例重新渲染操作
2020/09/21 Javascript
[35:43]2018DOTA2亚洲邀请赛 4.1 小组赛B组 paiN vs Effect
2018/04/03 DOTA
Python 网页解析HTMLParse的实例详解
2017/08/10 Python
详解Python nose单元测试框架的安装与使用
2017/12/20 Python
在Python中使用filter去除列表中值为假及空字符串的例子
2019/11/18 Python
Python要如何实现列表排序的几种方法
2020/02/21 Python
详解python模块pychartdir安装及导入问题
2020/10/22 Python
Python里面search()和match()的区别
2016/09/21 面试题
连锁经营管理专业大学生求职信
2013/10/30 职场文书
初中同学聚会邀请函
2014/02/03 职场文书
教学评估实施方案
2014/03/16 职场文书
副总经理岗位职责范本
2014/09/30 职场文书
交心谈心活动总结
2015/05/11 职场文书
个人业务学习心得体会
2016/01/25 职场文书
详解Laravel框架的依赖注入功能
2021/05/27 PHP
详解JAVA中的OPTIONAL
2021/06/14 Java/Android