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来判断两个元素是否相等

函数作用:断言函数是对表达式布尔值的判断,要求表达式计算值必须为真。可用于自动调试。如果表达式为假,触发异常;如果表达式为真,不执行任何操作。

posted @ 2021-08-11 17:30  liuxun0223  阅读(32)  评论(0)    收藏  举报