Python different browser calls, assertions, code data separation

'''
以下为文件中的测试数据,文件存放路径为:e:\\data.txt
ie||https://www.baidu.com||百度
chrome||https://www.souhu.com||搜狐
firefox||https://www.sougou.com||搜狗
'''

from selenium import webdriver
import sys
import time

driver='' #类变量、全局变量,存放获取到的浏览器驱动,以便其他函数使用

def get_test_data(data_file): #将文件中的测试数据读取出来存在列表中
    test_data=[] #存放测试数据的列表
    with open(data_file,'r',encoding='utf-8') as fp: #读取测试数据
        for data in fp:
            if len(data.split('||'))==3: #判断读取的每行数据切割后是否为三个
                browser_name=data.split('||')[0] #获取该行切割后的第一个数据
                url=data.split('||')[1] #获取改该行切割后的第二个数据
                assert_word=data.split('||')[2].strip() #获取该行切割后的第三个数据,并去除前后空格
                test_data.append([browser_name,url,assert_word]) #将获取到的该行数据以列表的形式存入test_data列表中
            else: #如果切割后的数据不是三个,则数据格式错误
                print('此行测试数据格式不正确:%s' %data)
    return test_data #将测试数据返回
    
def get_driver(browser_name): #根据测试数据获取指定浏览器的驱动
    global driver #全局变量使用方法
    if 'ie' in browser_name:
        driver=webdriver.Ie() #将获取到的浏览器驱动存入全局变量中
    elif 'chrome' in browser_name:
        driver=webdriver.Chrome()
    elif 'firefox' in browser_name:
        driver=webdriver.Firefox()
    else:
        print('不支持该浏览器:%s' %browser_name)
        exist()
    driver.set_page_load_timeout(10) #设置超时时间,如果访问网页时间超过10秒就报错
    return driver #返回驱动
    
def visit(url): #访问网址,获取网页数据url
    global driver
    try:
        driver.get(url) #访问网址,获取网页数据url
    except TimeoutException:
        print('网页访问超时')
    time.sleep(3)
    
def assert_word(key_word): #断言网页数据中是否包含指定的关键字key_word
    global driver
    try:
        assert key_word in driver.page_source #断言网页源码中是否包含指定关键字
    except AssertionError:
        print(key_word,'关键字断言失败')
    except Exception as e:
        print('出现了其他异常',e)
    else:
        print(key_word,'关键字断言成功')

def quit(): #关闭浏览器
    global driver
    driver.quit()
    
test_data=get_test_data('e:\\data.txt') #获取文件中的测试数据
for data in test_data: #遍历测试数据
    driver=get_driver(data[0]) #打开浏览器
    visit(data[1]) #访问网址
    assert_word(data[2]) #断言
    quit() #退出浏览器
print('测试完成')

Guess you like

Origin blog.csdn.net/weixin_44123630/article/details/113816937
Recommended