找回密码
 立即注册
  • 便民服务
  • 关注我们
  • 社区新手

# aler弹窗(警告型)
# from selenium import webdriver
# from time import sleep
# driver =webdriver.Chrome()
# driver.get('file:///D:/alert.html')
# driver.implicitly_wait(10)
# driver.maximize_window()
# # alert弹窗
# t=driver.switch_to.alert           #切换到alert弹窗
# t.accept()             #点击确定
# sleep(2)
# t.dismiss()
#
#
# 确认型弹窗
# from selenium import webdriver
# from time import sleep
# driver=webdriver.Chrome()
# driver.get('file:///D:/enter.html')
# driver.implicitly_wait(10)
# driver.maximize_window()
# driver.find_element_by_class_name('alert').click()         #点击确认型弹窗
# t=driver.switch_to.alert
# t.accept()        #点击确定



# 输入型弹窗
# from selenium import webdriver
# from time import sleep
# driver=webdriver.Chrome()
# driver.get('file:///D:/prompt.html')
# driver.implicitly_wait(10)
# driver.maximize_window()
# driver.find_element_by_class_name('alert').click()        #点击输入型弹窗位置
# t=driver.switch_to.alert
# print(t.text)
# t.send_keys('https://www.baidu.com/')
# t.accept()       #点击确定
# t.dismiss()     #点击取消

# iframe框处理,使用qq登录
# from selenium import webdriver
# from time import sleep
# driver=webdriver.Chrome()
# driver.get('https://www.jd.com/')
# driver.implicitly_wait(10)
# driver.maximize_window()
# driver.find_element_by_link_text('你好,请登录').click()
# driver.find_element_by_class_name('pdl').click()           #点击选择QQ方法登录
# sleep(2)
# iframe=driver.find_element_by_id('ptlogin_iframe')           #定位到iframe框
# driver.switch_to.frame(iframe)              #进入到iframe框

# driver.find_element_by_id('img_out_1843768342').click()      #点击QQ头像登录
# sleep(2)
# driver.find_element_by_id('key').send_keys('羽绒服')


# 登录163网易邮箱
# from selenium import webdriver
# from time import sleep
# driver=webdriver.Chrome()
# driver.get('https://mail.163.com/')
# driver.implicitly_wait(10)
# driver.maximize_window()
# 第一种方法:通过元素定位
# iframe=driver.find_element_by_xpath('//*[@id="loginDiv"]/iframe[1]')        #定位iframe
# driver.switch_to.frame(iframe)            #进入iframe
# 第二种方法:通过标签名定位到iframe框
# iframe=driver.find_element_by_tag_name('iframe')
# driver.switch_to.frame('iframe')
# # 第三种方法:通过索引进入到iframe框
# driver.switch_to.frame(0)

# driver.find_element_by_name('email').send_keys('lzlihyam')
# driver.find_element_by_name('password').send_keys('XXXXyyy1')
# driver.find_element_by_id('dologin').click()

# 滚动条操作
# from selenium import webdriver
# from time import sleep
# driver=webdriver.Chrome()
# driver.get('https://www.jd.com//')
# driver.implicitly_wait(10)
# driver.maximize_window()
# 滑动到底部
# win1='window.scrollTo(0,20000)'        #向下滑动20000px
# # driver.execute_script(win1)
# # sleep(2)
# # # 滑动到顶部
# # win2='window.scrollTo(0,0)'
# # driver.execute_script(win2)


# 第二种
# js='var a=document.documentElement.scrollTop=30000'
# driver.execute_script(js)

# 缓慢下滑
# x=0
# while x<30000:
#     x+=500
#     js1='var a=document.documentElement.scrollTop='+str(x)
#     driver.execute_script(js1)
#     sleep(3)

# # keys类
# from selenium import webdriver
# from selenium.webdriver.common.keys import Keys       #导入一个keys类
# from time import sleep
# driver=webdriver.Chrome()
# driver.get('https://www.baidu.com//')
# driver.implicitly_wait(10)
# driver.maximize_window
# driver.find_element_by_id('kw').send_keys('啦啦啦啦啦')
# sleep(1)
# driver.find_element_by_id('kw').send_keys(Keys.BACK_SPACE)      #删除一个字符
# sleep(1)
# driver.find_element_by_id('kw').send_keys(Keys.CONTROL,'a')      #全选
# sleep(1)
# driver.find_element_by_id('kw').send_keys(Keys.CONTROL,'x')      #剪切
# sleep(1)
# driver.find_element_by_id('kw').send_keys(Keys.CONTROL,'v')      #粘贴
# sleep(1)
# driver.find_element_by_id('kw').send_keys(Keys.ENTER)             #回车

# def find_element(locator,*value):
#     '''封装一个元素定位的方法(上面代码使用太多find_element'''
#     sleep(1)
#     driver.find_element_by_id('kw').send_keys(*value)
#
# if __name__ == '__main__':
#     find_element('kw','selenium')
#     find_element('kw',Keys.BACK_SPACE)
#     find_element('kw',Keys.CONTROL,'a')
#     find_element('kw',Keys.CONTROL,'x')
#     find_element('kw',Keys.CONTROL,'v')
#     find_element('kw',Keys.ENTER)


# 把上面的代码进行封装,封装到类里面
# from selenium import webdriver
# class Bbs:
#     def __init__(self):
#         self.driver=webdriver.Chrome()
#         self.driver.get('http://192.168.0.129/bbs/forum.php')
#         self.driver.maximize_window()
#         self.driver.implicitly_wait(10)
#     def login(self):
#         '''封装一个登录的方法'''
#         self.driver.find_element_by_id('ls_username').send_keys('admin')
#         self.driver.find_element_by_id('ls_password').send_keys('123456')
#         self.driver.find_element_by_css_selector('.pn').click()
#     def manage_center(self):
#         self.login()
#         self.driver.find_element_by_link_text('管理中心').click()
# if __name__ == '__main__':
#     b=Bbs()
#     b.login()
    # b.manage_center()



# #unittest框架介绍
# import unittest       #导入unittest这个库

# #TestCase这类是用来组织和管理自动化测试用例的
# class Test(unittest.TestCase):
#     @classmethod
#     def setUpClass(cls) -> None:
#         print('类开始')
#     @classmethod
#     def tearDownClass(cls) -> None:
#         print('类结束')
#     def setUp(self) -> None:
#         print('方法开始')
#     def tearDown(self) -> None:
#         print('方法结束')
#     def test002(self):
#         print(222)
#     def test001(self):
#         print(111)
#     def test_a(self):
#         print(333)
#     def test_B(self):
#         print(444)
#     # def cook(self):
#     #     print(555)
# if __name__ == '__main__':
#     unittest.main()         #运行unittest单元测试框架里面所有代码,函数的入口

# # 1、在unittest框架里面写的用例名称必须以test开头
# # 2、用例运行顺序按照用例名称ASCII码 0-9 A-Z a-z
# # 3、方法开始和方法结束在每个用例运行之前和结束都会运行一次
# # 4、类开始和类结束在所有用例运行前和后只运行一次


# 自动化测试用例运行方法
# 第一种
import unittest
from selenium import webdriver
from time import sleep
from ui_auto.HTMLTestRunner3_New import HTMLTestRunner
class test_Baidu(unittest.TestCase):

    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.get('https://www.baidu.com')
        self.driver.maximize_window()
        self.driver.implicitly_wait(10)
    def tearDown(self):
        sleep(3)
        self.driver.quit()

    def test001(self):
        self.driver.find_element_by_id('kw').send_keys('selenium')

    def test002(self):
        self.driver.find_element_by_id('kw').send_keys('python')

# def all_case():
#     '''封装一个套件,套件就是用来装用例的,相当于是一个容器'''
#     suite=unittest.TestSuite()     #创建一个suite对象,用来添加需要运行的用例
#     suite.addTest([Test_Baidu('test001'),Test_Baidu('test002')])     #把test001这条用例添加到套件里
#     return suite
# #
if __name__ == '__main__':
      # 第一种方法,运行了上面封装的所有用例
#     unittest.main()
#     # 第二种运行方式(运行套件里面添加的部分用例)
#     runner=unittest.TextTestRunner()        #创建一个运行用例的对象
#     runner.run(all_case())       #运行上面定义的套件里面的用例
#     # 第三种方法:通过模糊匹配用例运行
      start_dir = r'D:\project\dcs8\ui_auto'
      # 模糊匹配ui_auto这个目录下面需要运行的用例
      discover = unittest.defaultTestLoader.discover(start_dir=start_dir, pattern='less*.py')
      # print(discover)     #打印出来显示搜索到哪些用例
      filename = start_dir + '\\' + '_ui-report.html'
      # print(filename)
      f = open(filename,'wb')  # wb是用二进制的方式取写入到filename这个文件里
      runner = HTMLTestRunner(stream=f,
                              title='UI自动化测试报告',
                              description='用例执行情况如下',
                              tester='dcs8')
      runner.run(discover)  # 运行模糊匹配出来的用例
      f.close()  # 关闭文件对象

分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册