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'])

"""
按测试阶段分类:
    单元测试(各个测试的基础,测试对象:最小可测试单元)
    集成测试(测试关注最小可测试单元之间接口和子系统集成)
    系统测试(整个系统组装后置于真实运行环境进行全面评估)
    验收测试(用户角度对系统进行认可验收)

怎么理解等价类和边界值,举例说明
    等价类:就是把输入数据的多种情况分成多个小部分,再从这些小部分里面挑取少量的代表性数据进行测试
    边界值:边界指是对等价类划分的补充,因为边界的数据是最容易出错的
"""
posted @ 2021-08-10 16:43  星德川  阅读(79)  评论(0)    收藏  举报