#练习:登录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. jetty 插件启动指定端口号

    clean jetty:run -Djetty.port=端口号

  2. zend framwork项目基本操作

    1.首先,我们做项目是采用db的方式来编写sql语句的. 2.查询: fetchOne()   查询一个字段,如果没有指定就只查询第一个字段,只能得到一个值. fetchRow()    查询一行数据 ...

  3. Leetcode 1022. 可被 K 整除的最小整数

    1022. 可被 K 整除的最小整数  显示英文描述 我的提交返回竞赛   用户通过次数74 用户尝试次数262 通过次数75 提交次数1115 题目难度Medium 给定正整数 K,你需要找出可以被 ...

  4. Leetcode 1013. 总持续时间可被 60 整除的歌曲

    1013. 总持续时间可被 60 整除的歌曲  显示英文描述 我的提交返回竞赛   用户通过次数450 用户尝试次数595 通过次数456 提交次数1236 题目难度Easy 在歌曲列表中,第 i 首 ...

  5. Leetcode 980. 不同路径 III

    980. 不同路径 III  显示英文描述 我的提交返回竞赛   用户通过次数42 用户尝试次数43 通过次数46 提交次数60 题目难度Hard 在二维网格 grid 上,有 4 种类型的方格: 1 ...

  6. 【九校联考-24凉心模拟】锻造(forging)

    题目背景 勇者虽然武力值很高,但在经历了多次战斗后,发现怪物越来越难打, 于是开始思考是不是自己平时锻炼没到位,于是苦练一个月后发现……自 己连一个史莱姆都打不过了. 勇者的精灵路由器告诉勇者其实是他 ...

  7. C++类型检查

    与大多数语言一样,C++也是类型决定了能对该对象进行的操作,一条表达式是否合法依赖于其中参与运算的对象的类型,C++是一种静态数据类型语言,它的类型检查发生在编译时, 因此编译器知道程序中每一个变量对 ...

  8. mybatis枚举自动转换(通用转换处理器实现)

    https://blog.csdn.net/fighterandknight/article/details/51520595 https://blog.csdn.net/fighterandknig ...

  9. python(3)之字符串

    字符串常用操作如下: name="huang yuqing"print(name.count("h"))#计算包含字符的个数print(name.capital ...

  10. :after 写三角形 border

    .tooltip:after { content: ''; position: absolute; border: 6px solid #5190ac; border-color: #5190ac t ...