UI自动化测试(二)
# !/usr/bin/env python
# -*- coding:utf-8 -*-
import time as t
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('file:///D:/PythonProject/app/UI%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/index.html')
# switch_to.frame(传入参数)定位frame,可传入id、name、index以及selenium的WebElement对象
driver.switch_to.frame(0)
# 用index来定位
#driver.switch_to.frame("username")
# 用id来定位
#driver.switch_to.frame("username")
# 用name来定位
#driver.switch_to.frame(driver.find_element_by_tag_name("iframe"))
# 用WebElement对象来定位
driver.find_element_by_id('username').send_keys('hi')
t.sleep(3)
driver.quit()
# 嵌套框架
driver = webdriver.Chrome()
driver.get('file:///D:/PythonProject/app/UI%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/so_index.html')
driver.switch_to.frame(0)
# bing搜索
driver.find_element_by_id("sb_form_q").send_keys("hi")
t.sleep(3)
# 跳出frame
driver.switch_to.default_content()
driver.find_element_by_id("username").send_keys("hi")
t.sleep(3)
driver.quit()
# 实战嵌套
driver = webdriver.Chrome()
driver.get("https://mail.qq.com")
# 进入iframe
driver.switch_to.frame("login_frame")
# username
driver.find_element_by_id("u").send_keys("1234567890")
# password
driver.find_element_by_id("p").send_keys("1234567890")
t.sleep(5)
driver.quit()
driver = webdriver.Chrome()
driver.get("https://email.163.com")
driver.maximize_window()
driver.switch_to.frame(0)
# username
driver.find_element_by_name("email").send_keys("1234567890")
# password
driver.find_element_by_name("password").send_keys("1234567890")
t.sleep(5)
driver.quit()
'''
1、循环所有的窗口
2、判断是否是当前窗口
3、如果不是,切换到新的窗口
4、在新的窗口进行操作
5、关闭新的窗口
6、切换到最开始窗口
'''
# 多窗口的处理
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()
t.sleep(3)
allHandlers = driver.window_handles
# 循环所有的窗口
for handler in allHandlers:
# 判断是否是当前窗口
if handler != nowHandler:
# 切换到新的窗口
driver.switch_to.window(handler)
driver.find_element_by_name('email').send_keys('123456')
t.sleep(3)
driver.close()
# close()是关闭当前窗口
# 切换到最开始窗口
driver.switch_to.window(nowHandler)
driver.find_element_by_id('freename').send_keys('123456')
t.sleep(3)
driver.quit()
# quit()直接退出并关闭所有关联的tab窗口
# WebElement类方法
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://mail.sina.com.cn/')
useename = driver.find_element_by_id('freename')
useename.send_keys('123qwe')
# 获取登录邮箱元素属性的值
print("输入的值:", useename.get_attribute('value'))
t.sleep(3)
useename.clear()
# clear()清空
t.sleep(3)
driver.quit()

driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://mail.sina.com.cn/')
WangJi = driver.find_element_by_link_text("忘记密码?")
print("是否可见:", WangJi.is_displayed())
# is_displayed()是否可见
driver.quit()
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://mail.sina.com.cn/')
edit = driver.find_element_by_id("freename")
# input标签增加readonly属性将只读不可编辑
print("是否可编辑:", edit.is_enabled())
# is_enabled()是否可编辑
driver.quit()
# 是否被选中
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://mail.sina.com.cn/')
select = driver.find_element_by_id('store1')
# 选中自动登录单选框
print('是否被选中:', select.is_selected())
t.sleep(3)
driver.quit()
# 下拉框应用——索引
from selenium.webdriver.support.select import Select
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('file:///D:/PythonProject/app/UI%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/select-1.html')
# 操作select
sel = driver.find_element_by_name('nr')
select = Select(sel)
t.sleep(3)
# 索引
select.select_by_index(2)
# # value值
# select.select_by_value('Go')
# # 文本形式
# select.select_by_visible_text('Java语言')
t.sleep(3)
driver.quit()
# boss直聘下拉框
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.zhipin.com/xian/')
# 搜索职位类型
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[3]').click()
t.sleep(3)
# 搜索职位
driver.find_element_by_name('query').send_keys('测试架构师')
t.sleep(3)
# 点击搜索
driver.find_element_by_xpath()
driver.find_element_by_xpath('//*[@id="wrap"]/div[3]/div/div[1]/div[1]/form/button').click()
t.sleep(3)
driver.quit()
# list1=[{"name":"wuya","student":[{"company":[{"languae":"Go"}]}]}],获取Go语言
list1=[{"name":"wuya","student":[{"company":[{"languae":"Go"}]}]}]
for item in list1[0]['student']:
print(item['company'][0]['languae'])
"""
按测试阶段分类:
单元测试(各个测试的基础,测试对象:最小可测试单元)
集成测试(测试关注最小可测试单元之间接口和子系统集成)
系统测试(整个系统组装后置于真实运行环境进行全面评估)
验收测试(用户角度对系统进行认可验收)
怎么理解等价类和边界值,举例说明
等价类:就是把输入数据的多种情况分成多个小部分,再从这些小部分里面挑取少量的代表性数据进行测试
边界值:边界指是对等价类划分的补充,因为边界的数据是最容易出错的
"""

浙公网安备 33010602011771号