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

原文地址:https://www.cnblogs.com/jason89/p/8998206.html

时间: 2024-10-09 03:02:06

selenium+python自动化92-多线程启动多个不同浏览器的相关文章

selenium+python自动化91-unittest多线程生成报告(BeautifulReport)

前言 selenium多线程跑用例,这个前面一篇已经解决了,如何生产一个测试报告这个是难点,刚好在github上有个大神分享了BeautifulReport,完美的结合起来,就能生成报告了. 环境必备: python3.6 : BeautifulReport不支持2.7 tomorrow : pip install tomorrow安装 BeautifulReport : github下载后放到/Lib/site-packages/目录下 BeautifulReport 1.BeautifulR

selenium+python自动化98--文件下载弹窗处理(PyKeyboard)

前言 在web自动化下载操作时,有时候会弹出下载框,这种下载框不属于web的页面,是没办法去定位的(有些同学一说到点击,脑袋里面就是定位!定位!定位!) 有时候我们并不是非要去定位到这个按钮再去点击,学会使用键盘的快捷键操作,也能达到一样的效果. 之前讲过一篇Selenium2+python自动化75-非input文件上传(SendKeys)这个当时是基于python2写的. 最近很多小伙伴开始用python3了,这个SendKeys在python3上没法用,python3需要用PyUserIn

Pycharm+Selenium Python 自动化搭建

Pycharm+Selenium  自动化搭建 一,按照博客链接安装: (1)Pycharm+Selenium Python 自动化搭建 (2) 下载chrom对应版本chromdriver http://chromedriver.chromium.org/downloads (3)解压放在python37目录下 二,创建后代码 (1)代码: from selenium import webdriver options = webdriver.ChromeOptions() options.bi

【python-excel】Selenium+python自动化之读取Excel数据(xlrd)

Selenium2+python自动化之读取Excel数据(xlrd) 转载地址:http://www.cnblogs.com/lingzeng86/p/6793398.html ···························································································································

selenium+python自动化之环境安装

一.Python安装 1.操作系统:win7 64位系统 2.下载Python安装包,选择2.7版本和3.6版本都可以(最好安装2.7版本稳定)官网下载地址:https://www.python.org/ 3.Python安装,双击傻瓜式安装 4.安装目录在d盘:D:\python 二.环境变量 1.安装完成后,看下这个目录D:\python\Scripts,有没pip.exe和easy_install.exe这两个文件(一般都有) 2.将D:\python和D:\python\Scripts路

Selenium+python自动化21-TXT数据参数化

前言      在17篇我们讲了excel数据的参数化,有人问了txt数据的参数化该怎么办呢,下面小编为你带你txt数据参数化的讲解 一.以百度搜索为例,自动搜索五次不同的关键字.输入的数据不同从而引起输出结果的变化. 测试脚本: 1 #coding=utf-8 2 from selenium import webdriver 3 import unittest, time, os 4 class Login(unittest.TestCase): 5 def test_login(self):

Selenium+Python 自动化环境搭建过程

1.  所需组建 Python Selenium for python Pycharm 2.  环境搭建 1)   下载Python 3.x最新版本 到 https://www.python.org/downloads/, 下载3.x最新版本,如图 下载完后直接,双击开始安装,记得在勾选组建的时候,需要勾选安装python到path这个选项,否则安装完了,还需要类似配置jdk环境变量一样把python添加到系统path中去. 打开cmd,输入python, 如果能看到python版本号,说明py

selenium+python自动化之操作浏览器

一.打开网站 1.第一步:从selenium里面导入webdriver模块 2.打开Firefox浏览器(Ie和Chrome对应下面的) 3.打开百度网址 二.设置休眠 1.由于打开百度网址后,页面加载需要几秒钟,所以最好等到页面加载完成后再继续下一步操作 2.导入time模块,time模块是Python自带的,所以无需下载 3.设置等待时间,单位是秒(s),时间值可以是小数也可以是整数 三.页面刷新 1.有时候页面操作后,数据可能没及时同步,需要重新刷新 2.这里可以模拟刷新页面操作,相当于浏

selenium+python自动化之元素定位

自动化按步骤拆分的话,可以分为四步操作:定位元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告.本篇接下来讲基本的八种元素定位方法.说的通俗一点,就是教大家找对象. 万物皆对象,所谓的对象,就是你喜欢的那个女神,她就是你的对象.既然是对象,她就有属性,比如眼睛大,头发长,皮肤白,颜值高.这些都是她的属性,每个属性又有对应的属性值,如眼睛="大",头发="长",颜值="高",对应的=后面就是它的属性的值. 同样的道