第一版:登录
#encoding=utf-8 import unittest import time from selenium import webdriver from selenium.webdriver import ActionChains from selenium.common.exceptions import TimeoutException from selenium.webdriver.common.keys import Keys class setPageLoadTime(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() def test_PageLoadTime(self): # 设定页面加载限制时间为4秒 self.driver.set_page_load_timeout(4) #重点,限制超时时间 self.driver.maximize_window() try: startTime = time.time() self.driver.get("http://mail.126.com") except TimeoutException: print (u'页面加载超过设定时间,超时') # 当页面加载时间超过设定时间, # 通过执行Javascript来stop加载,然后继续执行后续动作 self.driver.execute_script('window.stop()') end = time.time() - startTime print (end) # 切换进frame控件 self.driver.switch_to.frame(self.driver.find_element_by_xpath("//iframe[contains(@id,'x-URS-iframe')]")) # 获取用户名输入框 time.sleep(5) userName = self.driver.find_element_by_xpath("//input[@data-placeholder='邮箱帐号或手机号码']") # 输入用户名 userName.send_keys("******") # 获取密码输入框 pwd = self.driver.find_element_by_xpath("//input[@data-placeholder='输入密码' and @name='password']") # 输入密码 pwd.send_keys("*******") # 发送一个回车键 pwd.send_keys(Keys.RETURN) time.sleep(5) assert u"退出" in self.driver.page_source def tearDown(self): self.driver.quit() if __name__ == '__main__': unittest.main() |
结果:
第二版:登录+发送邮件
#encoding=utf-8 import unittest,time,traceback from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.common.exceptions import TimeoutException,NoSuchElementException from selenium.webdriver import ActionChains from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By class TestDemo(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() def test_SouhuMailSendMail(self): # 设定页面加载限制时间为4秒 self.driver.set_page_load_timeout(4) self.driver.maximize_window() try: self.driver.get("http://mail.126.com") except TimeoutException: print (u'页面加载超过设定时间,超时') self.driver.execute_script('window.stop()') try: # 切换进frame控件 self.driver.switch_to.frame(self.driver.find_element_by_xpath("//iframe[contains(@id,'x-URS-iframe')]")) #time.sleep(5) # 用户名 userName = self.driver.find_element_by_xpath("//input[@data-placeholder='邮箱帐号或手机号码']") userName.send_keys("****") # 密码 pwd = self.driver.find_element_by_xpath("//input[@data-placeholder='输入密码' and @name='password']") pwd.send_keys("****") # 登录按钮,回车代替 pwd.send_keys(Keys.RETURN) # 显式等待,确认页面成功登录并跳转到登录成功后的首页 wait = WebDriverWait(self.driver,10) wait.until(EC.element_to_be_clickable((By.XPATH,'//span[text()="写 信"]'))) time.sleep(2) self.driver.find_element_by_xpath('//span[text()="写 信"]').click() time.sleep(2) # 输入收件人 receiver = self.driver.find_element_by_xpath("//*[contains(@id,'_mail_emailinput')]//input") receiver.send_keys("****") # 输入邮件标题 subject = self.driver.find_element_by_xpath('//*[contains(@id,"subjectInput")]') subject.send_keys(u"这是一封测试邮件") # 获取邮件正文的富文本框 iframe = self.driver.find_element_by_xpath("//*[contains(@id,'editor')]//iframe") 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,"//*[contains(@id,'succInfo')]"))) print(u"邮件发送成功") except TimeoutException: print(u"显式等待页面元素超时") except NoSuchElementException: print(u"寻找的页面元素不存在",traceback.print_exc()) def tearDown(self): self.driver.quit() if __name__ == '__main__': unittest.main() |
结果:
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理。