from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time def message(emailaddr,text):
browser = webdriver.Firefox()
browser.get('https://email.163.com/')
time.sleep(2) iframe = browser.find_element_by_tag_name('iframe')
browser.switch_to_frame(iframe)
login = browser.find_element_by_name('email')
print(login.tag_name,login.text)
login.send_keys('your_email',Keys.TAB,'password')
land = browser.find_element_by_id('dologin').click()
time.sleep(2) browser.switch_to.default_content() # 退出frame,没有这一句后续的元素定位会出错
writhe = browser.find_element_by_id('_mail_component_59_59')
writhe.click() writher = browser.find_element_by_xpath('/html/body/div[2]/div[1]/div[2]/div[1]/section/header/div[1]/div[1]/div/div[2]/div/input')
writher.send_keys(emailAddr,Keys.TAB,'Mail_theme',Keys.TAB,text)
time.sleep(2)
setd = browser.find_element_by_xpath('//*[@id="_mail_button_9_223"]').click() emailAddr = input('Recipient's mailbox address :')
text = input('Mail content :') message(emailAddr,text)

笔记:

直接用browser.find_element_by_ 是找不到#document内元素的

browser.switch_to_frame('id') #参数为id的值,若id值为变数可用下列代码转换

 iframe = browser.find_element_by_tag_name('iframe')
browser.switch_to_frame(iframe)

switch_to_frame()用完需要退出,否则后继操作可能会异常

Message: TypeError: can't access dead object

_xpath()的参数最好直接在对象元素源代码上Copy->XPath

switch_to_frame() 的借鉴及其它知识:https://www.cnblogs.com/ketangxiaohai/p/9216483.html

Python编程快速上手--实践项目11.11.1的更多相关文章

  1. Python编程快速上手 让繁琐工作自动化 - 专业程序员的养成完整版PDF免费下载_百度云盘

    Python编程快速上手  让繁琐工作自动化 - 专业程序员的养成完整版PDF免费下载_百度云盘 提取码:7qm4 有关本书 累计销售超过10万册 零基础编程者的不二之选 基于Python3编写 通用 ...

  2. 《Python编程快速上手 —让繁琐工作自动化》|百度网盘免费下载|Python自动化办公

    Python编程快速上手—让繁琐工作自动化 提取码:u8vj 如今,人们面临的大多数任务都可以通过编写计算机软件来完成. Python 是一种解释型.面向对象.动态数据类型的高级程序设计语言.通过 P ...

  3. Python编程快速上手-让繁琐工作自动化-第二章习题及其答案

    Python编程快速上手-让繁琐工作自动化-第二章习题及其答案 1.布尔数据类型的两个值是什么?如何拼写? 答:True和False,使用大写的T和大写的F,其他字母是小写. 2.3个布尔操作符是什么 ...

  4. 入门python:《Python编程快速上手让繁琐工作自动化》中英文PDF+代码

    入门推荐学习<python编程快速上手>前6章是python的基础知识,通俗易懂地讲解基础,初学者容易犯错的地方,都会指出来.从第三章开始,每章都有一个实践项目,用来巩固前面所学的知识. ...

  5. python编程快速上手之第10章实践项目参考答案

      本章主要讲了python程序的调试,当程序有BUG或异常的时候,我们如何调试代码找出问题点.其实在本章之前的章节我们做练习的时候都会遇到各种各样的错语和异常,最初当不知道程序哪里出错的情况下不可否 ...

  6. python编程快速上手之第9章实践项目参考答案

    本章介介绍了shutil,zipfile模块的使用,我们先来认识一下这2个模块吧. 一.shutil模块 shutil模块主要用于对文件或文件夹进行处理,包括:复制,移动,改名和删除文件,在shuti ...

  7. python编程快速上手之第8章实践项目参考答案

    第8章实践项目之疯狂填词 创建一个一个疯狂填词(Mad Libs),程序,它将读入文本文件,并让用户在该文本文件中出现 ADJECTIVE,NOUN,VERB等单词的地方,加上他们自己的文本. 首先准 ...

  8. python经典书记必读:Python编程快速上手 让繁琐工作自动化

    所属网站分类: 资源下载 > python电子书 作者:熊猫烧香 链接:http://www.pythonheidong.com/blog/article/69/ 来源:python黑洞网,专注 ...

  9. python编程快速上手之第6章实践项目参考答案

    #!/usr/bin/env python3.5 2 #coding:utf-8 3 # 4 # 这个项目主要目的是字符串的处理,简单格式化输出 5 tableData = [['apples','o ...

随机推荐

  1. python操作rabbitmq实现广播效果

    生产方(Fanout_Publisher.py) # __author__ = 'STEVEN' import pika #开启socket connection = pika.BlockingCon ...

  2. how browser supports https

    1. pre-installed certificate authorities 2. ssl/tls encription ssl/tls handshake flow: 1. exchange d ...

  3. py3.5 telnet的实例(在远程机器上批量创建用户)

    import sysimport telnetlibimport time HOST = ["172.18.217.12","172.18.217.13"]#往 ...

  4. B. Hierarchy

    http://codeforces.com/problemset/problem/17/B 用邻接矩阵建图后, 设cost[v]表示去到顶点v的最小值. 很多个人去顶点v的话,就选最小的那个就OK 然 ...

  5. E. 打击判定 判断矩形是否相交

    有一个很明显的做法就是判断PointInPolygon .枚举第二个矩形的点,是否在第一个矩形内,但是有bug 就是那种第二个矩形很大的那种,所以容易想到又枚举第一个矩形的点,看是否在第二个矩形里. ...

  6. Spark Mllib里如何将trainDara训练数据文件里第一行是字段名不是数据给删除掉(图文详解)

    不多说,直接上干货! 具体,见 Hadoop+Spark大数据巨量分析与机器学习整合开发实战的第13章 使用决策树二元分类算法来预测分类StumbleUpon数据集

  7. 自定义orgmode中加粗字体的颜色

    自定义orgmode中加粗字体的颜色 Table of Contents 1. orgmode中加粗字体的默认处理 2. 设置设置加粗字体的颜色 1 orgmode中加粗字体的默认处理 在orgmod ...

  8. spring boot图片上传至远程服务器并返回新的图片路径

    界面上传图片时考虑到可能会有用户的图片名称一致,使用UUID来对图片名称进行重新生成. //UUIDUtils public class UUIDUtils { public static Strin ...

  9. vue+webpack+VS Code入门简单的项目配置

    为了方便,这边的编译器选择的是VS Code (Visual Studio Code); 打开VS Code,选择好自己的工作空间,然后新建一个文件夹作为我们项目的文件夹,然后,show time: ...

  10. 在PaaS上开发Web、移动应用(2)

    在PaaS上开发Web.移动应用(2) PaaS学习笔记目录 PaaS基础学习(1) 在PaaS上开发Web.移动应用(2) PaaS优点与限制(3) 6. 巨型代码,是指持续不断地向一个应用程序添加 ...