selenium+python自动化91-多线程启动多个不同浏览器

一、前言

如果想用多个浏览器跑同一套测试代码,driver=webdriver.Firefox()这里的driver就不能写死了,可以把浏览器名称参数化。

后续如果想实现多线程同时启动浏览器执行用例,用前面讲的tomorrow模块,设置下线程数套用下就可以了

二、启动浏览器

1.为了实现多个浏览器的灵活切换,可以把启动浏览器写一个函数,参数用浏览器名称就行了

```

def startBrowser(name):

"""

打开浏览器函数,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.运行结果:

(0)

相关推荐

  • 【编程课堂】selenium 祖传爬虫利器

    一些网页,比如微博,只有在登录状态才能进行页面的访问,或者对数据有比较复杂的验证和保护,直接通过网络请求进行登录并获取数据就会比较麻烦.这种时候,就该本篇的主角 selenium 上场了. Selen ...

  • Python实现数据技术|爬虫便可获取免费百度文库付费文档

    相信大家在百度文档中看到了比较合适的文档之后就有了想下载学习一下的想法,但是有些时候文章更多的需要付费下载,针对于文档中能发现语句是分为一个一个的标签中的文本进行输出的.如果你有耐心和任劳任怨的想法, ...

  • selenium+python自动化89-unittest多线程执行用例

    前言 假设执行一条脚本(.py)用例一分钟,那么100个脚本需要100分钟,当你的用例达到一千条时需要1000分钟,也就是16个多小时... 那么如何并行运行多个.py的脚本,节省时间呢?这就用到多线 ...

  • selenium+python自动化77-autoit文件上传

    前言 关于非input文件上传,点上传按钮后,这个弹出的windows的控件了,已经跳出三界之外了,不属于selenium的管辖范围(selenium不是万能的,只能操作web上元素).autoit工 ...

  • selenium+python自动化78-autoit参数化与批量上传

    前言 前一篇autoit实现文件上传打包成.exe可执行文件后,每次只能传固定的那个图片,我们实际测试时候希望传不同的图片. 这样每次调用的时候,在命令行里面加一个文件路径的参数就行. 一.命令行参数 ...

  • selenium+python自动化79-文件下载(SendKeys)

    前言 文件下载时候会弹出一个下载选项框,这个弹框是定位不到的,有些元素注定定位不到也没关系,就当没有鼠标,我们可以通过键盘的快捷键完成操作. SendKeys库是专业的处理键盘快捷事件的,所以这里需要 ...

  • selenium+python自动化80-文件下载(不弹询问框)

    前言 上一篇是点弹出框上的按钮去保存文件,本篇介绍一种更加优雅的方法,加载Firefox和Chrome的配置文件,不弹出询问框后台下载. 一.FirefoxProfile 1.点下载的时候,如下图,如 ...

  • selenium+python自动化81-报告优化

    一. 优化html报告 为了满足小伙伴的各种变态需求,为了装逼提示逼格,为了让报告更加高大上,测试报告做了以下优化: - 测试报告中文显示,优化一些断言失败正文乱码问题 - 新增错误和失败截图,展示到 ...

  • Selenium+python自动化82-只截某个元素的图

    前言 selenium截取全图小伙伴们都知道,曾经去面试的时候,面试官问:如何截图某个元素的图?不要全部的,只要某个元素...小编一下子傻眼了, 苦心人,天不负,终于找到解决办法了. 一.seleni ...

  • Selenium+python自动化83-chrome手机wap模式

    一.前言 这里是群里(QQ群:226296743)风神出60大洋悬赏的问题,学会这篇就是赚了60大洋了! 我的环境: - chrome 62 - chromedriver 2.33 二.遇到问题 1. ...

  • Selenium+python自动化84-python3.6用PyUserInput

    前言 python2上安装SendKeys库,对于不好定位的元素,用快捷键操作是极好的,那么在3.6上安装时,会报错 一.python3.6安装SendKeys报错 1.python3.6安装Send ...