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

 更新时间:2017年04月06日 10:15:16   投稿:lqh  
这篇文章主要介绍了selenium 与 chrome 进行qq登录并发邮件操作实例详解的相关资料,需要的朋友可以参考下

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()

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

相关文章

  • js中top/parent/frame概述及案例应用

    js中top/parent/frame概述及案例应用

    top:永远指分割窗口最高层次的浏览器窗口;parent:包含当前分割窗口的父窗口,本文将围绕js中top、parent、frame进行讲述及他们的应用案例
    2013-02-02
  • offsetParent 算法分析

    offsetParent 算法分析

    以下部分内容翻译自 W3C 的 CSSOM View Module,W3C 工作草案 2008年2月22日。
    2010-04-04
  • TypeScript定义接口(interface)案例教程

    TypeScript定义接口(interface)案例教程

    这篇文章主要介绍了TypeScript定义接口(interface)案例教程,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • document.getElementById获取控件对象为空的解决方法

    document.getElementById获取控件对象为空的解决方法

    今天写个网页,想在页面加载onLoad时,动态显示由后台其他程序传来的数据时,用document.getElementById获取控件对象总是为空。但是检查了这个id确实是存在的。看下文的示例和解决方法
    2013-11-11
  • js css后面所带参数含义介绍

    js css后面所带参数含义介绍

    网页链接的js css后面总是带有一些参数,想必大家并不陌生,下面为大家介绍下这些参数的含义,感兴趣的朋友可以参考下
    2013-08-08
  • 深入理解JS异步编程-Promise

    深入理解JS异步编程-Promise

    Promise 是 ES6 新增的一个异步解决方案,它同 await 一样,是异步的解决方案,但是相比于 await,Promise 可以同时统一处理多个异步操作。这一点是很方便的。下面我们来一起学习一下吧
    2019-06-06
  • 谈谈关于JavaScript 中的 MVC 模式

    谈谈关于JavaScript 中的 MVC 模式

    本文介绍了模型-视图-控制器模式在 JavaScript 中的实现,有需要的朋友可以参考一下
    2013-04-04
  • js实现单元格拖拽效果

    js实现单元格拖拽效果

    这篇文章主要为大家详细介绍了js实现单元格拖拽效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • 详解JavaScript操作HTML DOM的基本方式

    详解JavaScript操作HTML DOM的基本方式

    这篇文章主要介绍了详解JavaScript操作HTML DOM的基本方式,HTML DOM是专门适用于HTML/XHTML的文档对象模型,需要的朋友可以参考下
    2015-10-10
  • javaScript NameSpace 简单说明介绍

    javaScript NameSpace 简单说明介绍

    命名空间,一看就知道主要目的是为了避免冲突。下面就来说一下如何打造自己的JavaScript命名空间。
    2013-07-07

最新评论