700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 登录搜狐邮箱并发送邮件的3中方法

登录搜狐邮箱并发送邮件的3中方法

时间:2021-07-08 23:40:39

相关推荐

登录搜狐邮箱并发送邮件的3中方法

登录搜狐邮箱并发送邮件的3中方法写自定义目录标题

用于设置剪切板内容键盘按键映射字典键盘键按下键盘键抬起

登录搜狐邮箱并发送邮件的3中方法

(1)传统的通过send_keys

(2)显示等待------切换frame—使用火狐才行(注意时间的等待)

(3)通过切换tab键-----替换了切换frame

Way1

#encoding=utf-8

from selenium import webdriver

import unittest,time,traceback

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

from mon.exceptions import TimeoutException,NoSuchElementException

from mon.by import By

class TestDemo(unittest.TestCase):

def setUp(self):

#self.driver = webdriver.Chrome(executable_path = “d:\chromedriver”)

self.driver = webdriver.Firefox(executable_path=“d:\geckodriver”)

def test_SohuMailSendEMail(self):

url = “”

# 访问搜狐邮箱登录页

self.driver.get(url)

time.sleep(3)

try:userName=self.driver.find_element_by_xpath('//input[@placeholder="请输入您的邮箱"]')userName.clear()userName.send_keys("fosterwu")passWord = self.driver.find_element_by_xpath('//input[@placeholder="请输入您的密码"]')passWord.clear()passWord.send_keys("1111")login= self.driver.find_element_by_xpath(u'//input[@value="登 录"]')login.click()wait = WebDriverWait(self.driver, 10)# 显示等待,确定页面是否成功登录并跳转到登录成功后的首页wait.until(EC.element_to_be_clickable((By.XPATH,'//li[.="写邮件"]')))self.driver.find_element_by_xpath(u'//li[text()="写邮件"]').click()time.sleep(2)receiver = self.driver.find_element_by_xpath('//div[@arr="mail.to_render"]//input')# 输入收件人receiver.send_keys("fosterwu@")subject = self.driver.find_element_by_xpath('//input[@ng-model="mail.subject"]')# 输入邮件标题subject.send_keys(u"一封测试邮件!")time.sleep(3)# 获取邮件正文编辑区域的iframe页面元素对象iframe = self.driver.find_element_by_xpath('//iframe[contains(@id, "ueditor")]')# 通过switch_to.frame()方法切换进入富文本框中self.driver.switch_to.frame(iframe)# 获取富文本框中编辑页面元素对象editBox = self.driver.find_element_by_xpath("/html/body")# 输入邮件正文editBox.send_keys(u"邮件的正文内容")# 从富文本框中切换出,回到默认页面self.driver.switch_to.default_content()# 找到页面上的“发送”按钮,并单击它self.driver.find_element_by_xpath('//span[.="发送"]').click()# 显示都等待含有关键字串“发送成功”的页面元素出现在页面中wait.until(EC.visibility_of_element_located((By.XPATH, '//span[.="发送成功"]')))print (u"邮件发送成功")except TimeoutException:print (u"显示等待页面元素超时")except NoSuchElementException:print (u"寻找的页面元素不存在", traceback.print_exc())except Exception:# 打印其他异常堆栈信息print (traceback.print_exc())def tearDown(self):# 退出IE浏览器self.driver.quit()

ifname== ‘main’:

unittest.main()

Way2`

#encoding=utf-8

from selenium import webdriver

import unittest, time, traceback

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

from mon.exceptions import TimeoutException, NoSuchElementException

from mon.by import By

class TestDemo(unittest.TestCase):

def setUp(self):# 启动Firefox浏览器self.driver = webdriver.Firefox(executable_path="d:\\geckodriver")#self.driver = webdriver.Ie(executable_path = "d:\\IEDriverServer")#self.driver = webdriver.Chrome(executable_path = "d:\\chromedriver")def test_SohuMailSendEMail(self):url = ""# 访问搜狐邮箱登录页self.driver.get(url)time.sleep(3)try:userName = self.driver.find_element_by_xpath\('//input[@placeholder="请输入您的邮箱"]')userName.clear()userName.send_keys("fosterwu")passWord = self.driver.find_element_by_xpath\('//input[@placeholder="请输入您的密码"]')passWord.clear()passWord.send_keys("1111")login = self.driver.find_element_by_xpath('//input[@value="登 录"]')login.click()

#这里是超时的影响

wait = WebDriverWait(self.driver, 10)

# 显示等待,确定页面是否成功登录并跳转到登录成功后的首页

wait.until(EC.element_to_be_clickable

((By.XPATH, ‘//li[text()=“写邮件”]’)))

self.driver.find_element_by_xpath(’//li[text()=“写邮件”]’).click()

time.sleep(2)

receiver = self.driver.find_element_by_xpath

(’//div[@arr=“mail.to_render”]//input’)

# 输入收件人

receiver.send_keys(“fosterwu@”)

time.sleep(3)

subject = self.driver.find_element_by_xpath

(’//input[@ng-model=“mail.subject”]’)

# 输入邮件标题

subject.send_keys(u"一封测试邮件!")

time.sleep(3)

# 获取邮件正文编辑区域的iframe页面元素对象

iframe = self.driver.find_element_by_xpath

(’//iframe[contains(@id, “ueditor”)]’)

# 通过switch_to.frame()方法切换进入富文本框中

self.driver.switch_to.frame(iframe)

# 通过JavaScript代码向邮件正文编辑框中输入正文

self.driver.execute_script(“document.getElementsByTagName(‘body’)

[0].innerHTML=‘邮件的正文内容;’”)

# 从富文本框中切换出,回到默认页面

self.driver.switch_to.default_content()

# 找到页面上的“发送”按钮,并单击它

self.driver.find_element_by_xpath(’//span[.=“发送”]’).click()

# 显示都等待含有关键字串“发送成功”的页面元素出现在页面中

wait.until(EC.visibility_of_element_located

((By.XPATH, ‘//span[.=“发送成功”]’)))

print ( u"邮件发送成功")

except TimeoutException:

print ( u"显示等待页面元素超时")

except NoSuchElementException:

print ( u"寻找的页面元素不存在", traceback.print_exc())

except Exception:

# 打印其他异常堆栈信息

print ( traceback.print_exc())

def tearDown(self):# 退出IE浏览器self.driver.quit()

ifname== ‘main’:

unittest.main()

避免等待超时时,则需要设置对应的时间

(3)通过切换tab键–跳过切换frame

#encoding=utf-8

from selenium import webdriver

import unittest, time, traceback

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

from mon.exceptions import TimeoutException, NoSuchElementException

from mon.by import By

from mon.keys import Keys

import win32clipboard as w

import win32api, win32con

用于设置剪切板内容

def setText(aString):

w.OpenClipboard()

w.EmptyClipboard()

w.SetClipboardData(win32con.CF_UNICODETEXT, aString)

w.CloseClipboard()

键盘按键映射字典

VK_CODE = {‘ctrl’:0x11, ‘v’:0x56}

键盘键按下

def keyDown(keyName):

win32api.keybd_event(VK_CODE[keyName], 0, 0, 0)

键盘键抬起

def keyUp(keyName):

win32api.keybd_event(VK_CODE[keyName], 0, win32con.KEYEVENTF_KEYUP, 0)

class TestDemo(unittest.TestCase):

def setUp(self):# 启动Firefox浏览器self.driver = webdriver.Firefox(executable_path="d:\\geckodriver")def test_SohuMailSendEMail(self):url = ""# 访问搜狐邮箱登录页self.driver.get(url)time.sleep(3)try:userName = self.driver.find_element_by_xpath\('//input[@placeholder="请输入您的邮箱"]')userName.clear()userName.send_keys("fosterwu")passWord = self.driver.find_element_by_xpath\('//input[@placeholder="请输入您的密码"]')passWord.clear()passWord.send_keys("1111")login = self.driver.find_element_by_xpath('//input[@value="登 录"]')login.click()wait = WebDriverWait(self.driver, 10)# 显示等待,确定页面是否成功登录并跳转到登录成功后的首页wait.until(EC.element_to_be_clickable\((By.XPATH, '//li[text()="写邮件"]')))self.driver.find_element_by_xpath('//li[text()="写邮件"]').click()time.sleep(2)receiver = self.driver.find_element_by_xpath\('//div[@arr="mail.to_render"]//input')# 输入收件人receiver.send_keys("fosterwu@")time.sleep(2)subject = self.driver.find_element_by_xpath\('//input[@ng-model="mail.subject"]')# 输入邮件标题subject.send_keys(u"一封测试邮件!")# 输入完邮件标题后,按下Tab键可以将页面焦点切换到富文本框编辑区域subject.send_keys(Keys.TAB)subject.send_keys(Keys.TAB)time.sleep(2)# 设置剪切板内容,也就是将要输入的正文内容setText(u"邮件正文内容")# 模拟键盘的Ctrl + v组合键,将剪切板内容粘贴到富文本编辑区中keyDown("ctrl")keyDown("v")keyUp("v")keyUp("ctrl")# 找到页面上的“发送”按钮,并单击它self.driver.find_element_by_xpath('//span[.="发送"]').click()# 显示都等待含有关键字串“发送成功”的页面元素出现在页面中wait.until(EC.visibility_of_element_located\((By.XPATH, '//span[.="发送成功"]')))print (u"邮件发送成功")except TimeoutException:print (u"显示等待页面元素超时")except NoSuchElementException:print (u"寻找的页面元素不存在", traceback.print_exc())except Exception:# 打印其他异常堆栈信息print (traceback.print_exc())def tearDown(self):# 退出IE浏览器self.driver.quit()

ifname== ‘main’:

unittest.main()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。