通过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)
继续阅读与本文标签相同的文章
上一篇 :
访客管理系统的优点
-
Spring Cloud Alibaba实战(一) - 概述
2026-05-18栏目: 教程
-
php系列----->通过PHP数组实现队列
2026-05-18栏目: 教程
-
MySQL 数据库铁律
2026-05-18栏目: 教程
-
Java 13 明天发布,最新最全新特性解读
2026-05-18栏目: 教程
-
如何使用phpMyAdmin导出Joomla数据库
2026-05-18栏目: 教程
