一、环境的搭建请参考博文http://blog.csdn.net/qq_32782059/article/details/72875225

二、本代码的运行环境配置如下:

1、selenium-server-standalone-3.4.0.jar

2、selenium-2.53.0

备注:selenium3.*版本同selenium-server不兼容,有Bug。

3、对于火狐浏览器,geckodriver.exe需要selenium-3.3.1以上的版本,因此在本文讲述的环境中不能测试通过。

4、在IE中,会出现如下错误:NoSuchElementException: Message: Unable to find element with id,需要修改IE的设置,如下:

5、在IE中,还需要确保所有区域的保护模式设置一样,如下:

即Internet、Local Intranet、Trusted Sites、Restricted sites这四个区域要全部设置得一样。

备注:webdriver可以从http://docs.seleniumhq.org/download/页面下载

6、特定selenium版本的安装

a、pip uninstall selenium 卸载程序

b、pip install selenium=2.53 安装2.53版本的selenium

7、python测试代码如下:

#coding = utf-8

import time

from selenium import webdriver

from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

#google浏览器

capabilities = DesiredCapabilities.CHROME

#微软浏览器

#capabilities = DesiredCapabilities.INTERNETEXPLORER

#火狐浏览器

#capabilities = DesiredCapabilities.FIREFOX

capabilities["platform"] = "ANY"

driver = webdriver.Remote(command_executor="http://localhost:4444/wd/hub", desired_capabilities=capabilities )

"""

如果grid的hub可以接收到消息,但是测试不成功,则可以使用本地方法来调试。

如driver = webdriver.Ie()来进行本地测试,

"""

#driver = webdriver.Ie()

#driver.implicitly_wait(3)

driver.get("https://www.baidu.com")

driver.find_element_by_id("kw").send_keys("python")

driver.find_element_by_id("su").click()

time.sleep(5)

driver.quit()

8、同时在多个节点上运行测试用例。

启动hub:java -jar selenium-server-standalone-3.4.0.jar -role hub

启动节点1:java -jar selenium-server-standalone-3.4.0.jar -role node -port 5555 -browser browserName=chrome,maxInstances=5 -hub http://localhost:4444/grid/register

节点1支持5个谷歌浏览器实例。

启动节点2:java -jar selenium-server-standalone-3.4.0.jar -role node -browser "browserName=internet explorer"  -port 5556 -hub http://localhost:4444/grid/register

节点2支持1个微软浏览器实例。

下面是测试代码:

#coding = utf-8

import time

from selenium import webdriver

from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

from threading import Thread

#浏览器配置信息

browsers = [

DesiredCapabilities.INTERNETEXPLORER,

DesiredCapabilities.CHROME

]

# 创建webdriver驱动

def createDriver(caps):

return webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub',desired_capabilities=caps)

def start_test(driver):

#driver.implicitly_wait(3)

time.sleep(3)

driver.get("http://www.baidu.com")

driver.find_element_by_id("kw").send_keys("python")

driver.find_element_by_id("su").click()

#driver.implicitly_wait(3)

time.sleep(3)

driver.quit()

#开始分布式测试(多个节点同时运行。)

def test_on_nodes():

threads = []

for bw in browsers:

driver = createDriver(bw)

t = Thread(target=start_test, args=(driver,))

threads.append(t)

for t in threads:

t.start()

for t in threads:

t.join()

print("测试运行完成")

if __name__ == '__main__':

#print(DesiredCapabilities.INTERNETEXPLORER)

test_on_nodes()

总结:

Selenium Grid并不能实现并行执行脚本,如果想并行执行需要和多线程进行结合。

标签:webdriver,浏览器,selnium,selenium,driver,capabilities,jar,Grid

来源: https://www.cnblogs.com/SunshineKimi/p/10590184.html

grid布局浏览器兼容_selnium Grid 兼容分布式多浏览器相关推荐

  1. CSS Grid 布局完全指南(图解 Grid 详细教程)

    CSS Grid 布局完全指南(图解 Grid 详细教程) CSS Grid 布局是 CSS 中最强大的布局系统.与 flexbox 的一维布局系统不同,CSS Grid 布局是一个二维布局系统,也就 ...

  2. css grid布局增加边框,CSS Grid中每行之后的边框

    3 个答案: 答案 0 :(得分:5) 您可以使用justify-content在内容之前和之后添加其他列,而不是1fr将内容置于中心位置. 然后将div之后的div和.line置于第二列的开头. * ...

  3. grid布局浏览器兼容_CSS Grid 网格布局教程

    一.概述 网格布局(Grid)是最强大的 CSS 布局方案. 它将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局.以前,只能通过复杂的 CSS 框架达到的效果,现在浏览器内置了. 上 ...

  4. display属性_前端基础:Grid 布局教程,重新复习grid布局的容器和项目属性

    链接:http://www.ruanyifeng.com/blog/2019/03/grid-layout-tutorial.html 一.概述 它将网页划分成一个个网格,可以任意组合不同的网格,做出 ...

  5. python布局管理_Python基础=== Tkinter Grid布局管理器详解

    本文转自:https://www.cnblogs.com/ruo-li-suo-yi/p/7425307.html          @ 箬笠蓑衣 Grid(网格)布局管理器会将控件放置到一个二维的表 ...

  6. grid布局看这一篇就够了

    grid布局笔记 1.grid概述 2.grid布局的作用 2.1.grid与flex布局的区别 2.2.grid的优势 3.grid基本概念 3.1.容器与项目 3.2.行.列.单元格 3.3.网格 ...

  7. (超详细)强大的grid布局

    grid布局 1.什么是grid布局? Flex布局是轴线布局,只能指定"项目"针对轴线的位置,可以看作是一维布局,Grid 布局则是将容器划分成"行"和&qu ...

  8. 一文搞懂Grid 布局

    Grid 布局是什么? Grid 布局即网格布局,是一种新的 CSS 布局模型,比较擅长将一个页面划分为几个主要区域,以及定义这些区域的大小.位置.层次等关系.号称是最强大的的 CSS 布局方案,是目 ...

  9. 超级强大的网格grid布局

    超级强大的网格grid布局 一.概述 二.基本概念 1. 容器和项目 2.行和列 3.单元格 4.网格线 三.容器属性 1. display 属性 2.grid-template-columns 属性 ...

最新文章

  1. 1、CSS 框模型概述(盒模型)
  2. windows和linux互传文件,用户配置文件和密码配置文件,用户和组管理
  3. JS数组reduce()方法
  4. 熊孩子倾家荡产玩游戏、打赏主播有救了!最高法:无效,可退还
  5. python输出字符_python输出字符
  6. Linux 命令(122)—— watch 命令
  7. Pandas如何检测None和Nan
  8. 下面哪个对象能代表当前的HTML文件,GD:JAVA考试选择题
  9. cr2格式缩略图不显示_cr2缩略图补丁 佳能相机RAW文件CR2原片格式缩略图显示补丁- 游侠下载站...
  10. CSGO地图人物模型配置
  11. 小程序点击多个指定地方都能关闭弹框
  12. qt,QGraphicsView实现鼠标中键拖动图片,鼠标滚轮缩放、两个窗口联动左键选点等功能(c++pyqt两个版本)
  13. 单点登录系统(SSO)的开发思路
  14. 华为OD机试用Python实现 -【寻找关键钥匙】 2023Q1A
  15. 直播界要哭了!罗永浩进军电商直播:最可怕的对手,永远来自未知领域!
  16. 图片循环滚动代码(无缝滚动)
  17. ural1297 . Palindrome
  18. K8s二进制部署-flanneld报(Couldn‘t fetch network config)
  19. 黑马程序员----基于BootStrap框架的网页制作综合案例
  20. win7睡眠后唤不醒的问题

热门文章

  1. 关于linux中的sudo命令
  2. 10.linux通配符
  3. Java-Script学习笔记-2
  4. android one指纹解锁,Microsoft OneDrive for Android终于获得指纹解锁
  5. 2021年烟花爆竹产品涉药考试题库及烟花爆竹产品涉药考试试卷
  6. 3G技术必将加速中小企业信息化进程
  7. “入职半年,绩效背了C”,谈谈「绩效管理」的误区及对策
  8. 大模型高效开发的秘密武器——大模型低参微调套件MindSpore PET篇
  9. 基于低代码平台实现的CRM系统
  10. php 嵌入图片 div,如何使用Javascript往Div中插入图片的实例分析