selenium+python自动化92-多线程启动多个不同浏览器
前言
如果想用多个浏览器跑同一套测试代码,driver=webdriver.Firefox()这里的driver就不能写死了,可以把浏览器名称参数化。
后续如果想实现多线程同时启动浏览器执行用例,用前面讲的tomorrow模块,设置下线程数套用下就可以了
启动浏览器
1.为了实现多个浏览器的灵活切换,可以把启动浏览器写一个函数,参数用浏览器名称就行了
def startBrowser(name):
"""
打开浏览器函数,"firefox"、"chrome"、"ie"、"phantomjs"
"""
try:
if name == "firefox" or name == "Firefox" or name == "ff":
print("start browser name :Firefox")
driver = webdriver.Firefox()
return driver
elif name == "chrome" or name == "Chrome":
print("start browser name :Chrome")
driver = webdriver.Chrome()
return driver
elif name == "ie" or name == "Ie":
print("start browser name :Ie")
driver = webdriver.Ie()
return driver
elif name == "phantomjs" or name == "Phantomjs":
print("start browser name :phantomjs")
driver = webdriver.PhantomJS()
return driver
else:
print("Not found this browser,You can use 'firefox', 'chrome', 'ie' or 'phantomjs'")
except Exception as msg:
print("启动浏览器出现异常:%s" % str(msg))
多线程启动不同浏览器
1.代码参考:
# coding:utf-8
from selenium import webdriver
import time
from tomorrow import threads
def startBrowser(name):
"""
打开浏览器函数,"firefox"、"chrome"、"ie"、"phantomjs"
"""
try:
if name == "firefox" or name == "Firefox" or name == "ff":
print("start browser name :Firefox")
driver = webdriver.Firefox()
return driver
elif name == "chrome" or name == "Chrome":
print("start browser name :Chrome")
driver = webdriver.Chrome()
return driver
elif name == "ie" or name == "Ie":
print("start browser name :Ie")
driver = webdriver.Ie()
return driver
elif name == "phantomjs" or name == "Phantomjs":
print("start browser name :phantomjs")
driver = webdriver.PhantomJS()
return driver
else:
print("Not found this browser,You can use 'firefox', 'chrome', 'ie' or 'phantomjs'")
except Exception as msg:
print("启动浏览器出现异常:%s" % str(msg))
@threads(5)
def run_case(name):
driver = startBrowser(name)
driver.get("https://www.cnblogs.com/yoyoketang/")
time.sleep(3)
print(driver.title)
driver.quit()
if __name__ == "__main__":
names = ["chrome", "ff", "ie"]
for i in names:
run_case(i)
2.运行结果:
selenium+python自动化92-多线程启动多个不同浏览器的更多相关文章
- selenium+python自动化91-unittest多线程生成报告(BeautifulReport)
前言 selenium多线程跑用例,这个前面一篇已经解决了,如何生成一个测试报告这个是难点,刚好在github上有个大神分享了BeautifulReport,完美的结合起来,就能生成报告了. 环境必备 ...
- selenium+python自动化90-unittest多线程执行用例
前言 假设执行一条脚本(.py)用例一分钟,那么100个脚本需要100分钟,当你的用例达到一千条时需要1000分钟,也就是16个多小时... 那么如何并行运行多个.py的脚本,节省时间呢?这就用到多线 ...
- selenium+python自动化98--文件下载弹窗处理(PyKeyboard)
前言 在web自动化下载操作时,有时候会弹出下载框,这种下载框不属于web的页面,是没办法去定位的(有些同学一说到点击,脑袋里面就是定位!定位!定位!) 有时候我们并不是非要去定位到这个按钮再去点击, ...
- selenium+python自动化79-文件下载(SendKeys)
前言 文件下载时候会弹出一个下载选项框,这个弹框是定位不到的,有些元素注定定位不到也没关系,就当没有鼠标,我们可以通过键盘的快捷键完成操作. SendKeys库是专业的处理键盘事件的,所以这里需要用S ...
- selenium+python自动化登录脚本
利用selenium+python写的一个关于登录的自动化脚本
- 【python-excel】Selenium+python自动化之读取Excel数据(xlrd)
Selenium2+python自动化之读取Excel数据(xlrd) 转载地址:http://www.cnblogs.com/lingzeng86/p/6793398.html ·········· ...
- selenium+python自动化102-登录页面滑动解锁(ActionChains)
前言 登录页面会遇到滑动解锁,滑动解锁的目的就是为了防止别人用代码登录(也就是为了防止你自动化登录),有些滑动解锁是需要去拼图这种会难一点. 有些直接拖到最最右侧就可以了,本篇讲下使用 seleniu ...
- selenium+python自动化100-centos上搭建selenium启动chrome浏览器headless无界面模式
环境准备 前言 selenium在windows机器上运行,每次会启动界面,运行很不稳定.于是想到用chrome来了的headless无界面模式,确实方便了不少. 为了提高自动化运行的效率和稳定性,于 ...
- selenium+python自动化87-Chrome浏览器静默模式启动(headless)
前言 selenium+phantomjs可以打开无界面的浏览器,实现静默模式启动浏览器完成自动化测试,这个模式是极好的,不需要占用电脑的屏幕. 但是呢,phantomjs这个坑还是比较多的,并且遇到 ...
随机推荐
- .Net Core:部署应用
实战Asp.Net Core:部署应用 1.前言 某一刻,你已经把 .Net Core 的程序写好了.接下来,还可以做什么呢?那就是部署了. 作为一名开发工程师,如果不会部署自己开发的应用,那么这 ...
- ACM大牛的BLOG(转)
Twilightgod CUSThttp://blog.csdn.net/twilightgodAekdycoin FZU http://hi.baidu.com/aekdycoinForeverli ...
- (机器学习)小试牛刀 利用Zapier和MonkeyLearn
MonkeyLearn + Zapier Integration(阅者注:本文介绍如何用Zapier和MonkeyLearn将机器学习实际应用到工作当中,比如:客户咨询和投诉管理,营销邮件管理) We ...
- CH3602 Counting Swaps
题意 3602 Counting Swaps 0x30「数学知识」例题 背景 https://ipsc.ksp.sk/2016/real/problems/c.html Just like yeste ...
- day02 大型互联网架构演变历程笔记 和nigix和keepalived
PS:1.单个进程内,有多个线程,可以共享进程的内存空间2. 进程和进程之间通信比较麻烦, 会涉及 序列化和反序列化 PS :以一个交易网站看网站是如何变大的,网站的发展!!!! PS:随着请求的增加 ...
- Linux内核配置
1.autoconf.h文件 老版本的Linux内核中,执行make menuconfig后,编译系统会把所有的配置信息保存到源码顶层目录下的.config文件中,然后将.config中的内容转换为C ...
- ZH奶酪:【数据结构与算法】基础排序算法总结与Python实现
1.冒泡排序(BubbleSort) 介绍:重复的遍历数列,一次比较两个元素,如果他们顺序错误就进行交换. 2016年1月22日总结: 冒泡排序就是比较相邻的两个元素,保证每次遍历最后的元素最大. 排 ...
- scylladb docker 运行试用
scylladb 是兼容cassandra 的数据存储系统,从官方的性能报告,比原生的apache cassandra 有好多 的提高 使用docker 运行,具体的也可以参考官方文档,后边会提供 ...
- hasura graphql server 集成gitlab
默认官方是提供了gitlab 集成的demo的,但是因为gitlab 一些版本的问题, 跑起来总有问题,所以查找相关资料测试了一个可以运行的版本 项目使用docker-compose 运行 参考 ht ...
- 关于 Javascript 严格模式下多文件合并时注意
Javascript 在第一行使用 "use strict" 声明严格模式. 但是在多个 js 文件合并时就需要注意了,可能你的是严格模式,但别的文件不是,就会造成错误. 为什么使 ...