API操作笔记
1.Alert警告框
from selenium import webdriver from selenium.webdriver.common.alert import Alert import time as t driver=webdriver.Chrome() driver.maximize_window() driver.get('file:///D:/code/testDev/UI自动化测试/API操作/alert.html')
获取alert警告框的文本信息
print('获取alert的文本信息:',driver.switch_to.alert.text) t.sleep(3)
点击确定
driver.switch_to.alert.accept() t.sleep(3) driver.quit()
2.confirm弹出确认框
from selenium import webdriver from selenium.webdriver.common.alert import Alert import time as t driver=webdriver.Chrome() driver.maximize_window() driver.get('file:///D:/code/testDev/UI自动化测试/API操作/confirm.html')
点击按钮
driver.find_element_by_xpath('/html/body/input').click()
点击确认按钮
driver.switch_to.alert.accept()
t.sleep(3)
刷新页面
driver.refresh() t.sleep(3) driver.find_element_by_xpath('/html/body/input').click()
点击取消按钮
driver.switch_to.alert.dismiss() t.sleep(3) driver.quit()
3.prompt消息对话框
from selenium import webdriver from selenium.webdriver.common.alert import Alert import time as t driver=webdriver.Chrome() driver.maximize_window() driver.get('file:///D:/code/testDev/UI自动化测试/API操作/prompt.html')
点击按钮
driver.find_element_by_xpath('/html/body/input').click()
弹出框里面输入内容
driver.switch_to.alert.send_keys('liuxun') t.sleep(5)
点击取消按钮
driver.switch_to.alert.dismiss()
t.sleep(3)
点击按钮,并在弹出框里输入内容
river.find_element_by_xpath('/html/body/input').click() driver.switch_to.alert.send_keys('liuxun') t.sleep(5)
点击确定按钮
driver.switch_to.alert.accept() t.sleep(5) driver.quit()
4.新浪邮箱Assert断言实战
from selenium import webdriver from selenium.webdriver.common.alert import Alert import time as t driver=webdriver.Chrome() driver.maximize_window() driver.get('https://mail.sina.com.cn/')
输入用户名
driver.find_element_by_id('freename').send_keys('wuya1303@sina.com') t.sleep(3)
输入密码
driver.find_element_by_id('freepassword').send_keys('admin123') t.sleep(3)
点击登录按钮
driver.find_element_by_class_name('loginBtn').click() t.sleep(4)
获取nick昵称
nick=driver.find_element_by_xpath('//*[@id="greeting"]/span').text print('nick信息:',nick)
assert断言nick昵称是否是test
assert nick=='test' t.sleep(3)
点击写信按钮
driver.find_element_by_xpath('//*[@id="coreBtn"]/ul/li[1]/a').click() t.sleep(3)
输入收件人
nputText=driver.find_element_by_xpath('//*[@id="tr_to"]/td/ul/li/input') inputText.send_keys('1874468142@qq.com')
断言获取的inputText元素标签的内容是否正确
assert inputText.get_attribute('value')=='1874468142@qq.com'
进入到iframe框架
driver.switch_to.frame(0) t.sleep(3) driver.quit()
5.QQ邮箱实战
from selenium import webdriver from selenium.webdriver.common.alert import Alert import time as t driver=webdriver.Chrome() driver.maximize_window() driver.get('https://mail.qq.com/')
进入到iframe的框架
driver.switch_to.frame('login_frame')
输入用户名
driver.find_element_by_id('u').send_keys('1874468142@qq.com') t.sleep(3)
输入密码
driver.find_element_by_id('p').send_keys('liuxun0223') t.sleep(3)
点击登录
driver.find_element_by_class_name('btn').click() t.sleep(3)
验证输入的密码是否正确
errorText=driver.find_element_by_xpath('//*[@id="error_tips"]') assert errorText.text=='你输入的账号不正确,请重新输入。' t.sleep(3) driver.quit()
6.新浪邮箱实战
from selenium import webdriver from selenium.webdriver.common.alert import Alert import time as t driver=webdriver.Chrome() driver.maximize_window() driver.get('https://mail.sina.com.cn/')
(1)验证用户名和密码都为空
driver.find_element_by_link_text('登录').click() errorText=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]')
验证为空的错误提示信息
assert errorText.text=='请输入邮箱名' t.sleep(3)
(2)验证用户名正确,密码为空
driver.find_element_by_id('freename').send_keys('1874468142@sina.cn') driver.find_element_by_link_text('登录').click() 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]')
验证密码为空的错误提示信息
assert errorText.text=='请输入密码' t.sleep(3)
(3)验证用户名为空,密码正确
driver.find_element_by_id('freepassword').send_keys('liuxun') driver.find_element_by_link_text('登录').click() 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]')
验证用户名为空的错误提示信息
assert errorText.text=='请输入邮箱名'
t.sleep(3)
(4)用户名或密码错误
driver.find_element_by_id('freename').send_keys('1874468142@sina.cn') driver.find_element_by_id('freepassword').send_keys('liuxun') driver.find_element_by_link_text('登录').click() t.sleep(3) 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]/') print(errorText.text)
验证用户名或密码错误
assert errorText.text=='登录名或密码错误' t.sleep(3)
退出浏览器
driver.quit()
7.验证测试忘记密码
from selenium import webdriver from selenium.webdriver.common.alert import Alert import time as t driver=webdriver.Chrome() driver.maximize_window() driver.get('https://mail.sina.com.cn/')
获取到当前窗口
nowHandler=driver.current_window_handle
点击忘记密码
driver.find_element_by_link_text('忘记密码?').click()
获取到所有窗口
allHandler=driver.window_handles
循环所有窗口
for handler in allHandler:
判断是否是当前窗口
if handler!=nowHandler:
切换到新的窗口
driver.switch_to.window(handler)
获取到当前的地址
url=driver.current_url
是否以‘entry=freemail’输出结束
print(url.endswith('entry=freemail')) assert url.endswith('entry=freemail')==True
driver.close()
切换到最开始的窗口
driver.switch_to.window(nowHandler)
t.sleep(3)
退出浏览器
driver.quit()
8.Alert类的详解
Alert类主要是对Alert()警告框、confirm()确认框、prompt()消息对话框的处理
Alert类的方法:
(1)Text():获取alert确认框里的文本信息
(2)Dismiss():拒绝确认框
(3)Accept():接受确认框
(4)Send_keys():在弹出的prompt消息对话框里输入内容
9.Assert断言
定义:使用assert来判断两个元素是否相等
函数作用:断言函数是对表达式布尔值的判断,要求表达式计算值必须为真。可用于自动调试。如果表达式为假,触发异常;如果表达式为真,不执行任何操作。