python中的alert警告操作、弹出框和下拉框事件

自动化测试知识点

from selenium import webdriver
from selenium.webdriver.common.alert import Alert
import time as t

 1、'''alert警告操作'''(.py代码)

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('file:///D:/code/testDev/UI%E8%87%AA%E5%8A%A8%E5%8C%96/API/alter.html')
#获取alert警告框的文本信息
print('获取alert的文本信息:',driver.switch_to.alert.text)
t.sleep(3)
#点击确定按钮
driver.switch_to.alert.accept()
t.sleep(3)
river.quit()

 

(index.html代码)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <center>
        <a href="frame-1.html">无涯</a>
    </center>
    <iframe src="frame-1.html" frameborder="0" height="170" width="300" id="frame"></iframe>
</body>
</html>

  

 

 

 

2、'''确认弹出框'''(.py代码)

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('file:///D:/code/testDev/UI%E8%87%AA%E5%8A%A8%E5%8C%96/API/dismiss.html')
#点击按钮
driver.find_element_by_xpath('/html/body/input').click()
#点击确认按钮
driver.switch_to.alert.accept()
t.sleep(5)
#再次刷新页面
driver.refresh()
t.sleep(5)
driver.find_element_by_xpath('/html/body/input').click()
#点击取消按钮
driver.switch_to.alert.dismiss()
t.sleep(5)
driver.quit()

(index1.html代码)

<!DOCTYPE html>
<html lang="en"> <head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<center>
    <iframe id="iframe" src="http://www.bing.com " width="800" height="400"></iframe>
</center>
username:<input type="text" id="username" placeholder="请输入用户名">
</body>
</html>

(1)、'''实战(弹出框)'''(.py代码)

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('file:///D:/code/testDev/UI%E8%87%AA%E5%8A%A8%E5%8C%96/API/dismiss1.html')
#点击按钮
driver.find_element_by_xpath('/html/body/input').click()
#弹出框里面输入内容
driver.switch_to.alert.send_keys('明天会更好')
t.sleep(5)
driver.switch_to.alert.dismiss()
t.sleep(5)
#点击按钮
driver.find_element_by_xpath('/html/body/input').click()
driver.switch_to.alert.send_keys('明天会更好')
t.sleep(5)
#点击确认按钮
driver.switch_to.alert.accept()
t.sleep(5)
driver.quit() 

(frame-1.html代码)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <center>
        用户名:<input type="text" id="username" placeholder="请输入用户名:">
    </center>
</body>
</html>

  

 

 

 

(2)、'''sina邮箱实战''' 

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://mail.sina.com.cn/')
#登录
#输入用户名
driver.find_element_by_class_name('username').send_keys('wuya1303@sina.com')
t.sleep(3)
#输入密码
driver.find_element_by_class_name('password').send_keys('admin123')
t.sleep(3)
#点击登录
driver.find_element_by_class_name('loginBtn').click()
t.sleep(3)
#获取nick(昵称)文本信息(text)
nick=driver.find_element_by_xpath('//*[@id="greeting"]/span').text
#获取nick的值
print('nick的信息:',nick)
assert nick=='test'
t.sleep(3)
#点击写信按钮
driver.find_element_by_xpath('//*[@id="coreBtn"]/ul/li[1]/a').click()
t.sleep(3)
#输入收件人
# driver.find_element_by_xpath('//*[@id="tr_to"]/td/ul/li/input').send_keys('891708041@qq.com')
inputText=driver.find_element_by_xpath('//*[@id="tr_to"]/td/ul/li/input')
inputText.send_keys('891708041@qq.com')
assert inputText.get_attribute('value')=='891708041@qq.com'
t.sleep(3)
#进入iframe框架中
# driver.switch_to.frame(0)
# t.sleep(3)
driver.quit()

 

(3)、'''qq邮箱实战'''

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('891708041@qq.com')
t.sleep(3)
#输入密码
driver.find_element_by_id('p').send_keys('4545')
t.sleep(3)
#单击登录
driver.find_element_by_class_name('btn').click()
t.sleep(3)
errorText=driver.find_element_by_xpath('//*[@id="err_m"]')
# assert errorText.text=='你输入的账户或密码不正确,请重新输入'
t.sleep(3)
driver.quit()

 

(4)、'''sina邮箱测试点梳理和验证(1、错误提示信息验证2、超链接验证)'''

  (4-1)、账户名和密码都为空

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://mail.sina.com.cn/')
#点击登录按钮(在账户和密码都为空的前提下)
driver.find_element_by_class_name('loginBtn').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)
driver.quit()

 

  (4-2)、密码为空的情况

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://mail.sina.com.cn/')
#输入账户
driver.find_element_by_id('freename').send_keys('124563@sina.com')
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[2]')
driver.find_element_by_class_name('loginBtn').click()
#验证密码为空的错误提示信息
assert errorText.text=='请输入密码'
t.sleep(3)
driver.quit()

  (4-3)、账户为空的情况

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://mail.sina.com.cn/')
#输入密码
driver.find_element_by_id('freepassword').send_keys('124563')
t.sleep(3)
#点击登录
driver.find_element_by_class_name('loginBtn').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)
driver.quit()

   (4-4)、账户或者密码错误的情况

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://mail.sina.com.cn/')
#输入错误的账户
driver.find_element_by_id('freename').send_keys('wuya1304@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()
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)
driver.quit()

   (4-5)、'''测试sina邮箱忘记密码'''

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
print(url.endswith('entry=freemail'))
assert url.endswith('entry=freemail')==True
#切换回sina邮箱登录首页
driver.switch_to.window(nowHandler)
t.sleep(3)
driver.quit()

 

5、select处理的三个思路

   1、按索引的方式定位下拉框
2、按value值的方式定位下拉框
3列表、按text文本值的方式定位下拉框

(1)'''下拉框(select)的应用'''

from selenium import  webdriver
import time as t
from selenium.webdriver.support.select import Select
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('file:///D:/code/testDev/UI%E8%87%AA%E5%8A%A8%E5%8C%96/select.html')
#操作select
sel=driver.find_element_by_name('nr')
select=Select(sel)
t.sleep(3)
#按索引的方式定位下拉框
select.select_by_index(2)
t.sleep(3)
#按text文本值的方式定位下拉框
select.select_by_visible_text('Java语言')
t.sleep(3)
driver.quit()

 

(11)'''实战(boss直聘)'''

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.zhipin.com/xian/?sid=sem_pz_360pc_title')
driver.find_element_by_xpath('//*[@id="wrap"]/div[3]/div/div[1]/div[1]/form/div[2]/div/span/b').click()
t.sleep(3)
driver.find_element_by_xpath('//*[@id="wrap"]/div[3]/div/div[1]/div[1]/form/div[4]/div/div/ul[1]/li[3]').click()
t.sleep(3)
driver.find_element_by_xpath('//*[@id="wrap"]/div[3]/div/div[1]/div[1]/form/div[4]/div/div/ul[2]/li[3]').click()
t.sleep(3)
driver.find_element_by_xpath('//*[@id="wrap"]/div[3]/div/div[1]/div[1]/form/div[4]/div/div/ul[3]/li[2]').click()
t.sleep(3)
#搜索职位

driver.find_element_by_name('qurey').send_keys('测试架构师') t.sleep(3)
#点击搜索
driver.find_element_by_xpath('//*[@id="wrap"]/div[3]/div/div[1]/div[1]/form/div[2]/p/input')
t.sleep(3)
#选择公司规模
driver.find_element_by_xpath('//*[@id="wrap"]/div[3]/div/div[1]/div[1]/form/div[2]/p/input')
t.sleep(3)
driver.find_element_by_xpath('//*[@id="wrap"]/div[3]/div/div[1]/div[1]/form/div[2]/p/input')
t.sleep(3)
driver.quit()

 

 

 

 

posted @ 2021-08-11 17:53  就不将就就  阅读(1827)  评论(0编辑  收藏  举报