• UI自动化测试(弹出框,多窗口)


    目录

    一、弹出框实战

    二、Sina实战

    三、QQ邮箱错误信息的验证

    四、新浪邮箱错误信息的验证

    五、忘记密码的验证 多窗口


    一、弹出框实战

    1、在UI自动化测试中经常会遇到Alert弹出框的场景。Alert类是对话框的处理,主要是对alert警告框。confirm确认框,promp消息对话框。

      text():获取alert的文本

      dismiss ():点击取消

      accept():接受

      send-keys():输入

    1. from selenium import webdriver
    2. from selenium.webdriver.common.alert import Alert
    3. import time as t
    4. """获取alert警告框的文本信息"""
    5. driver=webdriver.Chrome()
    6. driver.maximize_window()
    7. driver.get('file:///D:/code/app/01.html')
    8. print('获取alert的文本信息:',driver.switch_to.alert.text)
    9. t.sleep(3)
    10. driver.switch_to.alert.accept()
    11. t.sleep(3)
    12. driver.quit()
    13. 获取alert的文本信息: 无涯课堂为您服务!

    1. from selenium import webdriver
    2. from selenium.webdriver.common.alert import Alert
    3. import time as t
    4. """确认框的处理"""
    5. driver=webdriver.Chrome()
    6. driver.maximize_window()
    7. driver.get('file:///D:/code/app/confi.html')
    8. driver.find_element_by_xpath('/html/body/input').click()
    9. driver.switch_to.alert.accept()
    10. t.sleep(5)
    11. # 刷新页面
    12. driver.refresh()
    13. t.sleep(3)
    14. driver.find_element_by_xpath('/html/body/input').click()
    15. driver.switch_to.alert.dismiss()
    16. t.sleep(3)
    17. driver.quit()

    1. from selenium import webdriver
    2. from selenium.webdriver.common.alert import Alert
    3. import time as t
    4. """消息对话框输入信息"""
    5. driver=webdriver.Chrome()
    6. driver.maximize_window()
    7. driver.get('file:///D:/code/app/prompt.html')
    8. driver.find_element_by_xpath('/html/body/input').click()
    9. driver.switch_to.alert.send_keys('无涯课堂为您服务!')
    10. t.sleep(5)
    11. # 点击取消
    12. driver.switch_to.alert.dismiss()
    13. t.sleep(5)
    14. driver.find_element_by_xpath('/html/body/input').click()
    15. # 再一次输入
    16. driver.switch_to.alert.send_keys('无涯课堂为您服务!')
    17. t.sleep(5)
    18. driver.switch_to.alert.accept()
    19. t.sleep(5)
    20. driver.quit()

    二、Sina实战

    1. from selenium import webdriver
    2. import time as t
    3. """sina实战"""
    4. driver=webdriver.Chrome()
    5. driver.maximize_window()
    6. driver.get('https://mail.sina.com.cn/')
    7. # 输入用户名
    8. driver.find_element_by_id('freename').send_keys('wuya1303@sina.com')
    9. t.sleep(3)
    10. # 输入密码
    11. driver.find_element_by_xpath('//*[@id="freepassword"]').send_keys('admin123')
    12. t.sleep(3)
    13. # 点击登录按钮
    14. driver.find_element_by_xpath('/html/body/div[3]/div/div[2]/div/div/div[4]/div[1]/div[1]/div[7]/div[1]/a[1]').click()
    15. t.sleep(3)
    16. # 获取nick
    17. nick=driver.find_element_by_xpath('//*[@id="navParent"]/li[1]/a/span/em').text
    18. print('nick信息:',nick)
    19. assert nick=="邮箱首页"
    20. # 点击写信按钮
    21. driver.find_element_by_xpath('//*[@id="coreBtn"]/ul/li[1]/a').click()
    22. t.sleep(3)
    23. # 输入收件人 断言
    24. inputText=driver.find_element_by_xpath('//*[@id="tr_to"]/td/ul/li/input')
    25. inputText.send_keys('wuya1303@sina.com')
    26. assert inputText.get_attribute('value')=='wuya1303@sina.com'
    27. driver.switch_to.frame
    28. t.sleep(3)
    29. driver.quit()

    三、QQ邮箱错误信息的验证

    1. from selenium import webdriver
    2. import time as t
    3. driver=webdriver.Chrome()
    4. driver.maximize_window()
    5. driver.get('https://mail.qq.com/')
    6. driver.switch_to.frame('login_frame')
    7. driver.find_element_by_id('u').send_keys('734398143')
    8. t.sleep(3)
    9. driver.find_element_by_xpath('//*[@id="p"]').send_keys('asdf')
    10. driver.find_element_by_xpath('//*[@id="login_button"]').click()
    11. t.sleep(3)
    12. errorText=driver.find_element_by_xpath('//*[@id="err_m"]')
    13. assert errorText.text=='你输入的帐号或密码不正确,请重新输入。'
    14. driver.quit()

    四、新浪邮箱错误信息的验证

    1、账户密码都为空

    1. from selenium import webdriver
    2. import time as t
    3. driver=webdriver.Chrome()
    4. driver.maximize_window()
    5. driver.get('https://mail.sina.com.cn/#')
    6. """错误信息验证 用户名和密码都为空"""
    7. driver.find_element_by_xpath('/html/body/div[3]/div/div[2]/div/div/div[4]/div[1]/div[1]/div[7]/div[1]/a[1]').click()
    8. errorText=driver.find_element_by_xpath('/html/body/div[3]/div/div[2]/div/div/div[4]/div[1]/div[1]/div[1]/span[1]')
    9. assert errorText.text=='请输入邮箱名'
    10. t.sleep(3)
    11. driver.quit()

    2、密码为空

    1. from selenium import webdriver
    2. import time as t
    3. driver=webdriver.Chrome()
    4. driver.maximize_window()
    5. driver.get('https://mail.sina.com.cn/#')
    6. """密码为空"""
    7. driver.find_element_by_id('freename').send_keys('wuya1303@sina.com')
    8. t.sleep(3)
    9. driver.find_element_by_xpath('/html/body/div[3]/div/div[2]/div/div/div[4]/div[1]/div[1]/div[7]/div[1]/a[1]').click()
    10. errorText=driver.find_element_by_xpath('/html/body/div[3]/div/div[2]/div/div/div[4]/div[1]/div[1]/div[1]/span[2]')
    11. assert errorText.text=='请输入密码'
    12. t.sleep(3)
    13. driver.quit()

    3、账户为空

    1. from selenium import webdriver
    2. import time as t
    3. driver=webdriver.Chrome()
    4. driver.maximize_window()
    5. driver.get('https://mail.sina.com.cn/#')
    6. """邮箱名为空"""
    7. driver.find_element_by_xpath('//*[@id="freepassword"]').send_keys('admin123')
    8. t.sleep(3)
    9. driver.find_element_by_xpath('/html/body/div[3]/div/div[2]/div/div/div[4]/div[1]/div[1]/div[7]/div[1]/a[1]').click()
    10. errorText=driver.find_element_by_xpath('/html/body/div[3]/div/div[2]/div/div/div[4]/div[1]/div[1]/div[1]/span[1]')
    11. assert errorText.text=='请输入邮箱名'
    12. t.sleep(3)
    13. driver.quit()

    五、忘记密码的验证 多窗口

    1. from selenium import webdriver
    2. import time as t
    3. """测试忘记密码"""
    4. driver=webdriver.Chrome()
    5. driver.maximize_window()
    6. driver.get('https://mail.sina.com.cn/#')
    7. nowHandler=driver.current_window_handle
    8. driver.find_element_by_link_text('忘记密码?').click()
    9. allHandler=driver.window_handles
    10. for handler in allHandler:
    11. if handler!=nowHandler:
    12. driver.switch_to.window(handler)
    13. url=driver.current_url
    14. print(url.endswith('entry=freemail'))
    15. assert url.endswith('entry=freemail')==True
    16. driver.close()
    17. driver.switch_to.window(nowHandler)
    18. t.sleep(3)
    19. driver.quit()

    B站最牛的Python自动化测试框架全栈测试开发实战项目入门到精通,涨薪必备教程!!!

  • 相关阅读:
    2022.8.8考试区域链接(district)题解
    java毕业设计天天好药店管理系统源码+lw文档+mybatis+系统+mysql数据库+调试
    windows mysql安装
    使用hugo+github搭建免费个人博客
    记录如何用php将敏感文字内容替换为星号的方法
    《CTF攻防世界web题》之茶壶我爱你(2)
    JavaScript includes() 方法的作用
    @PostConstruct注解详解
    C++各知识点参考资料汇总(不定期更新)
    电池故障估计:Realistic fault detection of li-ion battery via dynamical deep learning
  • 原文地址:https://blog.csdn.net/m0_68405758/article/details/128193974