找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
from selenium import webdriver
from time import sleep
警示性弹窗
drive = webdriver.Chrome()
drive.get('file:///E:/prompt.html')
drive.implicitly_wait(10)
drive.maximize_window()
drive.find_element_by_class_name('alert').click()
t = drive.switch_to.alert
t.send_keys('http://www.cnblogs.com/fengpingfan/')
t.accept()

确认性弹窗
drive = webdriver.Chrome()
drive.get('file:///E:/enter.html')
drive.implicitly_wait(10)
drive.maximize_window()
drive.find_element_by_class_name('alert').click()
t = drive.switch_to.alert
# t.accept()
t.dismiss()
输入性弹窗
from selenium import webdriver
from time import sleep
drive = webdriver.Chrome()
drive.get('file:///E:/prompt.html')
drive.implicitly_wait(10)
drive.maximize_window()
t = drive.switch_to.alert
t.accept()
drive.find_element_by_class_name('alert').click()
t = drive.switch_to.alert
t.accept()
drive.find_element_by_class_name('alert').click()
t = drive.switch_to.alert
t.send_keys('http://www.baidu.com/')
# t.accept()
t.dismiss()


from  selenium import  webdriver
from time import sleep
drive = webdriver.Chrome()
drive.get('http://jd.com/')
drive.implicitly_wait(10)
drive.maximize_window()
drive.find_element_by_link_text('你好,请登录').click()
sleep(2)
drive.find_element_by_class_name('QQ-icon').click()
sleep(2)
drive.switch_to.frame(drive.find_element_by_id('ptlogin_iframe'))
# drive.find_element_by_id('img_out_1803542463').click()
drive.switch_to.default_content()
drive.find_element_by_id('auth_manager_link').click()
# drive.find_element_by_id('key').send_keys('鞋子')


from  selenium import  webdriver
from time import sleep
drive = webdriver.Chrome()
drive.get('https://mail.163.com/')
drive.implicitly_wait(10)
drive.maximize_window()

drive.switch_to.frame(drive.find_element_by_xpath('//*[@id="loginDiv"]/iframe[1]'))
drive.switch_to.frame(0)


drive.find_element_by_name('email').send_keys('liu63016312')
drive.find_element_by_name('password').send_keys('19911113Lbx,')
drive.find_element_by_id('dologin').click()



from  selenium import  webdriver
from time import sleep
drive = webdriver.Chrome()
drive.get('https://jd.com/')
drive.implicitly_wait(10)
drive.maximize_window()
win1 = 'window.scrollTo(0,20000)'
drive.execute_script(win1)
drive.execute_script('window.scrollTo(0,0)')

js1 = 'var a = document.documentElement.scrollTop=1000'
drive.execute_script(js1)


i = 0
while i < 20000:
    i+=1000
    js2 = 'var a = document.documentElement.scrollTop='+ str(i)
    drive.execute_script(js2)
    sleep(2)



from  selenium import  webdriver
from time import sleep
from selenium.webdriver.common.keys import Keys
drive = webdriver.Chrome()
drive.get('https://baidu.com/')
drive.implicitly_wait(10)
drive.maximize_window()
drive.find_element_by_id('kw').send_keys('selenium')
sleep(1)
drive.find_element_by_id('kw').send_keys(Keys.BACK_SPACE)
sleep(1)
drive.find_element_by_id('kw').send_keys(Keys.CONTROL,'a')
sleep(1)
drive.find_element_by_id('kw').send_keys(Keys.CONTROL,'x')
sleep(1)
drive.find_element_by_id('kw').send_keys(Keys.CONTROL,'v')
sleep(1)
drive.find_element_by_id('kw').send_keys(Keys.ENTER)

from selenium import webdriver
from  time import sleep
from selenium.webdriver.common.keys import Keys
drive = webdriver.Chrome()
drive.get('https://baidu.com/')
drive.implicitly_wait(10)
drive.maximize_window()
def find_element(locator,*value):
    sleep(1)
    drive.find_element_by_id(locator).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
from time import sleep
drive = webdriver.Chrome()
drive.get('http://192.168.160.128/bbs/forum.php')
drive.maximize_window()
drive.find_element_by_id('ls_username').send_keys('admin')
drive.find_element_by_id('ls_password').send_keys('123456')
drive.find_element_by_class_name('pn').click()
sleep(1)
drive.find_element_by_link_text('管理中心').click()
把上面的代码进行封装,封装到类里面
from selenium import webdriver
from time import sleep
class Bbs:
    def __init__(self):   #创建一个构造函数
        self.drive = webdriver.Chrome()
        self.drive.get('http://192.168.160.128/bbs/forum.php')
        self.drive.implicitly_wait(10)
        self.drive.maximize_window()
    def login(self):   #封装一个登录的方法
        self.drive.find_element_by_id('ls_username').send_keys('admin')
        self.drive.find_element_by_id('ls_password').send_keys('123456')
        self.drive.find_element_by_class_name('pn').click()
    def manage(self):   #封装一个管理中心
        self.login()
        self.drive.find_element_by_link_text('管理中心').click()
if __name__ == '__main__':
    b=Bbs()
    # b.login()
    b.manage()



# unittest 框架介绍
from selenium import webdriver
from time import sleep
import unittest  # 导入unittest这个库
class Test(unittest.TestCase):  # 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):  # 运行不了,命名必须以test开头
        print(555)

if __name__ == '__main__':
    unittest.main()  # unittest.main() #y运行unittest单元测试框架里面所有代码,函数的入门

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

#课堂练习
from selenium import webdriver
from time import sleep
import  unittest  #导入unittest这个库
class Test(unittest.TestCase):  # TestCase是用来组织和管理自动化测试用例的
    @classmethod
    def setUpClass(cls) -> None:
        print('类开始')
    @classmethod
    def tearDownClass(cls) -> None:
        print('类结束')
    def setUp(self) -> None:
        self.drive = webdriver.Chrome()
        self.drive.get('http://192.168.160.128/bbs/forum.php')
        self.drive.maximize_window()
        self.drive.find_element_by_id('ls_username').send_keys('admin')
        self.drive.find_element_by_id('ls_password').send_keys('123456')
        self.drive.find_element_by_class_name('pn').click()
        sleep(3)
    def tearDown(self) -> None:
        self.drive.close()
    def test001(self):
        self.drive.find_element_by_link_text('管理中心').click()
        sleep(2)
if __name__ == '__main__':
    unittest.main()


#自动化测试用例运行方式
from selenium import webdriver
from time import sleep
import  unittest
from ui_auto.HTMLTestRunner3_New import HTMLTestRunner

class Test_baidu(unittest.TestCase):
    def setUp(self):
        self.drive = webdriver.Chrome()
        self.drive.get('https://www.baidu.com')
        self.drive.maximize_window()
        self.drive.implicitly_wait(10)
    def tearDown(self):
        sleep(3)
        self.drive.quit()
    def test001(self):
        self.drive.find_element_by_id('kw').send_keys('selenium')
    def test002(self):
        self.drive.find_element_by_id('kw').send_keys('python')
# def all_case():
        #封装一个套件,套件就是用来装用例的,相当于是一个容器(第二种方式中的)
        suite = unittest.TestSuite() #创建一个suite对象,用来添加需要运行的用例
        suite.addTest(Test_baidu('test001')) #把test001这条用例添加到套件里
        suite.addTest(Test_baidu('test002'))
       # suite.addTests([Test_baidu('test001'),Test_baidu('test002')])
        return suite
if __name__ == '__main__':
     # 第一种方法,运行了上面封装的所有用例
     # unittest.main()
     # 第二种运行方式,运行套件里面添加的部分用例
     # runner = unittest.TextTestRunner() # 创建一个运行用例的对象
     # runner.run(all_case()) #运行上面定义的套件里面的用例
     #第三种方式:通过模糊匹配用例运行
    start_dir = r'D:\Projects\dcs8\ui_auto'
     # 模糊匹配ui_auto这个目录下需要运行的用例
    discover = unittest.defaultTestLoader.discover(start_dir=start_dir,pattern='le*.py')
    # print(discover)  #打印出来显示搜索到哪些用例
    filename = r'D:\Projects\dcs8\ui_auto' + '\\' + '_ui_report.html'
    # print(filename)  #打印出来文件名 D:\Projects\dcs8\ui_auto\_ui_report.html
    f = open(filename,'wb') # wb 是用二进制的方式去写入到filename这个文件里
    runner = HTMLTestRunner(stream=f,
                            title='ui自动化测试报告',
                            description='用例执行情况如下:',
                            tester='miss Liu')
    runner.run(discover)  #运行模糊匹配出来的用例
    f.close() #关闭文对象件

分享至 : QQ空间
收藏

1 个回复

倒序浏览
厉害666
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册