Selenium Python自动化测试学习知识积累-高亮显示

# 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()

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值