通过thredins库实现多线程和通过tomorrow库得threads异步实现

threadins多线程启动浏览器

1.封装一个浏览器启动方法,根据不同参数启动不同浏览器

from time import ctime, sleep
from selenium import webdriver
import threading

def select_browser(browser):
    print(\"start %s\" % browser, ctime())
    try:
        if browser == \'Chrome\' or browser == \"Ch\":
            dr = webdriver.Chrome()
        elif browser == \'Firefox\' or browser == \'Ff\':
            dr = webdriver.Firefox()
        elif browser == \'Ie\' or browser == \'ie\':
            dr = webdriver.Ie()
        elif browser == \'phantomjs\' or browser == \'PhantomJS\':
            dr = webdriver.PhantomJS()
        else:
            print(\"Not found %s browser,You can use ‘firefox‘, ‘chrome‘, ‘ie‘ or ‘phantomjs‘\"% browser)
        return dr
    except Exception as msg:
        print(\"启动浏览器出现异常:%s\" % str(msg))

2.封装一个百度测试用例,根据传参的浏览器名称启动不同浏览器执行测试

def test_baidu(browser_name):
    driver = select_browser(browser_name)
    driver.maximize_window()
    driver.get(\"https://www.baidu.com\")
    driver.find_element_by_id(\'kw\').send_keys(\'selenium\')
    driver.find_element_by_id(\'su\').click()
    sleep(2)
    print(driver. )
    driver.quit()
    print(\"end %s\" % browser_name, ctime())

3.封装一个threading多线程方法,参数必须传元组

def thread_browser(*args):
    if args:
        threads = []                     # 创建线程列表
        for browser in args:
            t = threading.Thread(target=test_baidu, args=(browser,))    # 创建线程
            threads.append(t)
        for t in threads:
            t.start()                    # 启动线程
        for t in threads:
            t.join()                     # 守护线程
        print(\"end all time %s\"% ctime())
    else:
        print(\"Please pass at least one browser name\")


if __name__ == \"__main__\":
    thread_browser(\'Firefox\',\'Chrome\')

tomorrow异步启动浏览器

pip安装tomorrow库:python -m pip install tomorrow

#!/usr/bin/python3
# coding=utf-8
from selenium import webdriver
from tomorrow import threads
def test_baidu_01(name):
    driver = select_browser(name)
    driver.maximize_window()
    driver.get(\"https://www.baidu.com\")
    driver.find_element_by_id(\"kw\").send_keys(\"python\")
    driver.find_element_by_id(\'su\').click()
    print(driver. )
    driver.quit()
    print(\"quit %s\" % name, ctime())

def test_baidu_02(name):
    driver = select_browser(name)
    driver.maximize_window()
    driver.get(\"https://www.baidu.com\")
    driver.find_element_by_ _text(\"设置\").click()
    WebDriverWait(driver, 5, 0.5).until(EC.visibility_of_element_located((By. _TEXT,\"搜索设置\")),message=\"搜索设置未出现\")
    print(driver.find_element_by_ _text(\"搜索设置\").text)
    driver.find_element_by_ _text(\"搜索设置\").click()
    driver.find_element_by_ _text(\"保存设置\").click()
    driver.quit()

@threads(n=10)            # n为线程数
def all(name):
    test_baidu_01(name)
    test_baidu_02(name)

if __name__ == \"__main__\":
    browsers = (\"Chrome\",\"Firefox\")
    for i in browsers:
        all(i)

 

收藏 打印