# encoding=utf-8 from selenium import webdriver import unittest import time import traceback from selenium.common.exceptions import TimeoutException, NoSuchElementException from selenium.webdriver.common.by import By from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as ec # 封装高亮显示页面元素的方法 # 使用javascript代码将传入的页面元素对象的背景颜色和边框颜色分别设置为绿色和红色 def highlight_element(driver, element): driver.execute_script("arguments[0].setAttribute('style', arguments[1]);", element, "background:green; border:2px solid red;") class TestDemo(unittest.TestCase): def setUp(self): # 创建存储自定义文件配置文件的路劲变量 propath = "C:\\Users\\ifthink\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\xf1mvsab.default" # 加载自定义配置文件到firefoxprofile实例中 profile = webdriver.FirefoxProfile(propath) # 启动带自定义配置文件的浏览器 self.driver = webdriver.Firefox(executable_path="F:\\Python\\Webdriver\\geckodriver.exe", firefox_profile=profile) def test_sohumailsendmail(self): url = "http://mail.sohu.com" # 访问首页 self.driver.get(url) try: wait = WebDriverWait(self.driver, 10) wait.until(ec.element_to_be_clickable((By.XPATH, "//input[@placeholder='请输入您的邮箱']"))) username = self.driver.find_element_by_xpath("//input[@placeholder='请输入您的邮箱']") highlight_element(self.driver, username) time.sleep(3) username.clear() username.send_keys("xxxxx@sohu.com") password = self.driver.find_element_by_xpath("//input[@placeholder='请输入您的密码']") highlight_element(self.driver, password) time.sleep(3) password.clear() password.send_keys("xxxxx") login = self.driver.find_element_by_xpath("//input[@value='登 录']") highlight_element(self.driver, login) time.sleep(3) login.click() 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") highlight_element(self.driver, receiver) time.sleep(3) # 输入收件人 receiver.send_keys("ifthink@sohu.com") subject = self.driver.find_element_by_xpath("//input[@ng-model='mail.subject']") highlight_element(self.driver, subject) time.sleep(3) # 输入邮件标题 subject.send_keys("这是一封测试邮件") # 获取邮件正文编辑区域的iframe页面元素对象 iframe = self.driver.find_element_by_xpath("//iframe[contains(@id,'ueditor_0')]") # 通过switch_to.frame()方法切换进入富文本框 self.driver.switch_to.frame(iframe) # 获取富文本框中编辑页面元素对象 editbox = self.driver.find_element_by_xpath("//html/body") highlight_element(self.driver, editbox) time.sleep(3) editbox.send_keys("邮件的正文内容") # 通过javascript代码向邮件正文编辑框输入内容 self.driver.execute_script("document.getElementsByTagName('body')\ [0].innerHTML = '<b>通过javascript代码向邮件正文编辑框输入内容<b>;'") # 跳出富文本框 self.driver.switch_to.default_content() # 找到发送按钮,并点击它 send_button = self.driver.find_element_by_xpath("//span[text()='发送']") send_button.click() # 显示等待含有关键字串“发送成功”的页面元素出现在页面中 wait.until(ec.visibility_of_element_located((By.XPATH, "//span[.='发送成功']"))) print("邮件发送成功") except TimeoutException: print("显示等待页面元素超时") except NoSuchElementException: print("寻找的页面元素不存在") except Exception: print(traceback.print_exc()) if __name__ == '__main__': unittest.main()
Selenium Python自动化测试学习知识积累-高亮显示
最新推荐文章于 2024-08-20 20:05:02 发布