#练习:登录163邮箱然后新建一个联系人
import unittest
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver import ActionChains
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC class AddEmailContactByFireFox(unittest.TestCase): def setUp(self):
self.driver =webdriver.Ie(executable_path="c:\\IEDriverServer") def test_HandleFrameByPageSource(self):
url = "https://mail.163.com/"
self.driver.get(url)
time.sleep(2)
iframe=self.driver.find_element_by_xpath("//iframe[@id='x-URS-iframe']")
self.driver.switch_to.frame(iframe) time.sleep(5)
user_name = self.driver.find_element_by_xpath(".//input[@name='email']")
pwd = self.driver.find_element_by_xpath(".//input[@name='password']")
login = self.driver.find_element_by_xpath("//a[@id='dologin']") user_name.clear()
pwd.clear()
user_name.send_keys("XXX")
pwd.send_keys("wangjing1990")
login.click()
time.sleep(20) address_link=self.driver.find_element_by_xpath(".//div[text()='通讯录']")
address_link.click()
time.sleep(2) #wait = WebDriverWait(self.driver, 10, 0.2)
#wait.until(EC.visibility_of_element_located((By.LINK_TEXT, "退出")))
#assert u"退出" in self.driver.page_source
address_center_link=self.driver.find_element_by_xpath("//div[text()='通讯录']")
address_center_link.click()
time.sleep(5) #wait.until(EC.visibility_of_element_located((By.XPATH, "//span[text()='新建联系人']")))
create_contact_person_button=self.driver.find_element_by_xpath("//span[text()='新建联系人']")
create_contact_person_button.click() time.sleep(15)
#name = WebDriverWait(self.driver,10).until(lambda x: x.find_element_by_xpath("//input[@id='input_N']"))
#name.send_keys("wangjing") contacts_name_link=self.driver.find_element_by_xpath(".//input[@id='input_N']")
contacts_name_link.send_keys("wangjing")
time.sleep(2) contacts_email_link=self.driver.find_element_by_xpath(".//div[@id='iaddress_MAIL_wrap']/dl/dd/div/input")
contacts_email_link.send_keys("XXX@163.com")
time.sleep(2) contacts_tel_link=self.driver.find_element_by_xpath(".//div[@id='iaddress_TEL_wrap']/dl/dd/div/input")
contacts_tel_link.send_keys("")
time.sleep(2) contacts_other_link=self.driver.find_element_by_xpath(".//div[@id='iaddress_TEL_wrap']/following::dl/dd/div/textarea")
contacts_other_link.send_keys("family")
time.sleep(2) contacts_confirm_link=self.driver.find_element_by_xpath(".//span[text()='确 定']")
contacts_confirm_link.click()
time.sleep(2) def tearDown(self):
self.driver.quit() if __name__ == '__main__':
unittest.main()

【webdriver自动化】使用unittest实现自动登录163邮箱然后新建一个联系人的更多相关文章

  1. [Python爬虫] Selenium实现自动登录163邮箱和Locating Elements介绍

    前三篇文章介绍了安装过程和通过Selenium实现访问Firefox浏览器并自动搜索"Eastmount"关键字及截图的功能.而这篇文章主要简单介绍如何实现自动登录163邮箱,同时 ...

  2. 5、Selenium+Python自动登录163邮箱发送邮件

    1.Selenium实现自动化,需要定位元素,以下查看163邮箱的登录元素 (1)登录(定位到登录框,登录框是一个iframe,如果没有定位到iframe,是无法定位到账号框与密码框) 定位到邮箱框( ...

  3. python selenium模拟登录163邮箱和QQ空间

    最近在看python网络爬虫,于是我想自己写一个邮箱和QQ空间的自动登录的小程序, 下面以登录163邮箱和QQ空间和为例: 了解到在Web应用中经常会遇到frame/iframe 表单嵌套页面的应用, ...

  4. Python selenium登录163邮箱示例

    思路:使用python自带的unittest单元测试框架测试163邮箱登录成功的case import unittestfrom selenium import webdriverimport tim ...

  5. python webdriver 登录163邮箱发邮件加附件, 外加数据和程序分离,配置文件的方式

    配置文件:UiObjectMapSendMap.ini用来存放配置信息 GetOptionSendMail.py 用来读取配信息 #encoding=utf-8from selenium.webdri ...

  6. 自动化web前端测试,自动登录网站.目前发现最靠谱的方法是imacros

    imacros免费版 登录宏代码的示例: //首先登出URL GOTO=http://yoursite/logout.html//打开登录页面URL GOTO=http://yoursite/logi ...

  7. python webdriver 显示等待-自动登录126邮箱,添加联系人

    脚本内容:#encoding=utf-8#author-夏晓旭from selenium import webdriverimport timefrom selenium.webdriver.supp ...

  8. selenium登录163邮箱

    环境:windows8  python2.7+selenium+chrome 直接上脚本: # coding=utf-8from selenium import webdriverimport tim ...

  9. selenium登录163邮箱,得到cookie,requests后续请求

    1.场景 很多时候登录操作是比较复杂的,因为存在各种反爆破操作,以及为了安全性提交数据都会存在加密.如果要完全模拟代码去实现登录操作是比较复杂,并且该网站后续更新了登录安全相关功能,那么登录的模拟操作 ...

随机推荐

  1. 关于int8_t,uint8_t.....等数据类型的理解

    实习中,今天在看公司源码的时候,发现前辈给的代码都是这样的 typedef int8_t int8; typedef uint8_t uint8; typedef int16_t int16; typ ...

  2. 小Z的袜子(hose)

    小Z的袜子(hose) 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小Z把这N只袜 ...

  3. C#实体对象序列化成Json并让字段的首字母小写的两种解决方法

    引言:最近在工作中遇到与某些API对接的post的数据需要将对象的字段首字母小写.解决办法有两种:第一种:使用对象的字段属性设置JsonProperty来实现(不推荐,因为需要手动的修改每个字段的属性 ...

  4. 大量的QT控件及示例发放

    QT属性控件项目https://github.com/lexxmark/QtnProperty 比特币交易软件https://github.com/JulyIGHOR/QtBitcoinTrader ...

  5. 快捷键设置 keyiing.json

    // 快捷键设置 keyiing.json // 将键绑定放入此文件中以覆盖默认值 [     /* // 转换大写     {         "key" : "ctr ...

  6. linux 添加php gd扩展 (linux添加PHP扩展)

    首先最基本的 第一:先安装库 yum -y install libjpeglibjpeg-devel libpng libpng-devel freetype freetype-devel 第二:进入 ...

  7. webpack+typescript

    1. npm install --save typescript 2. npm install --save ts-loader webpack.config.js module.exports = ...

  8. linux系统用户和组管理

    用户和组管理 Linux是多用户多任务的网络操作系统,作为网络管理员,掌握用户的组的创建与管理至关重要. 学习要点: 了解用户和组的群的配置文件. 熟悉掌握Linux下用户的创建和维护管理. 熟悉掌握 ...

  9. tomcat vue webpack vue-router 404

    社区已经有结局方案了, http://blog.csdn.net/hayre/article/details/70145513

  10. xadmin后台分段导出避免timeout

    一.问题 xadmin后台功能很强大,特别在导出的时候格式有xls/xlsx.csv.xml.json.实际常用的还是前面2种.xls格式使用的xlwt,有个缺陷,导出数据过大时,会报ValueErr ...